无法解析:comment:1。\'comment \'字段必须是BSON类型字符串

时间:2017-05-30 07:11:46

标签: javascript node.js mongodb typescript

我正在使用mongodb本机驱动器来获取查询结果的光标。  我使用的是“评论”字段,下面基本上是一个字符串,是我使用的代码片段

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;
    }
}

但这给我的错误就像..

  

名称:'MongoError',     消息:'无法解析:注释:1. \'comment \'字段必须是BSON类型字符串。',     好的:0,     errmsg:'无法解析:comment:1。''comment \'字段必须是BSON类型的字符串。',     代码:9,     codeName:'FailedToParse'}

从项目中删除评论字段后,一切正常。 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

mongodb本机驱动程序中的collection.js中有一个功能,用于检查哪些字段是查询选项以及哪些是投影。如果投影中的所有字段都包含注释,限制,排序等字段,则它们将作为选项(用testForFields变量编写)。

尝试解决此问题:

原始代码:

db.collection(collectionName).find(query, projection)

固定代码:

db.collection(collectionName).find(query).project(projection)

帮助我解决问题。