0
我使用mongodb本機驅動器來獲取查詢結果的遊標。 餘米使用「註釋」字段,它基本上是低於字符串使用無法解析:評論:1. 'comment '字段必須是BSON類型字符串
let leve1_n = 'labreports';
let matchLabReports = { level1_n: "labreports" };
let sortCondition = { _id: 1 };
let projection = {comment : 1 , color: 1, value: 1, value_n: 1, value_d: 1, rangeStart: 1, rangeEnd: 1, level2: 1 };
let collectionName = collectionNames.biomarkerAggregations;
let cursor = dbModule.findCursorSort(dbModule.getDbHandle(dbName), collectionName, matchLabReports, projection,sortCondition);
cursor.forEach(doc => {
// Lambda Expression
// Do something with doc.
})
findcursorSort
function findCursorSort(db, collectionName, query, projection, sortCondition, options) {
if (!errorCheck(db)) {
let cursor = db.collection(collectionName).find(query, projection).sort(sortCondition);
if (!options) {
return cursor;
}
for (let i = 0; i < options.length; i++) {
cursor = cursor.addOption(options[i]);
}
return cursor;
}
}
的代碼片段IM但這是給我錯誤,如..
name:'MongoError', message:'無法解析:評論:1. \'comment \'字段必須是BSON類型的字符串。', OK:0, ERRMSG: '解析失敗:註釋:1. \' 註釋\ '字段必須是BSON字符串類型', 碼:9, 代號: 'FailedToParse'}
從項目中刪除評論字段後,一切工作正常。 任何幫助,將不勝感激。
'.findCursorSort()'是您的代碼中的自定義函數。它有什麼作用?我們需要知道,因爲錯誤來自該函數內部的代碼。 –
無關(我認爲),但我也猜測這個'let leve1_n ='labreports'; let matchLabReports = {level1_n:「labreports」};'你實際上是指'let leve1_n ='labreports';讓matchLabReports = {}; matchLabReports [level1_n] =「labreports」;'這實際上是如何爲查詢分配動態密鑰的。儘管您可能認爲自己使用了可變值,但您的代碼將被串接爲「{」level1_n「:」labreports「}」。你不是,因爲這不是JavaScript對象中的關鍵名稱的工作方式。 –
@NeilLunn感謝您的回覆。是.findCursorSort()是一個自定義函數,這裏是這個函數的代碼。 https://jsfiddle.net/jjv0g6k0/ –