相关疑难解决方法(0)

参数必须是nodejs中的字符串

我有以下代码:

              var objectid = infos[i].id;
              var name = infos[i].name;
              return collection.aggregate([
                {$match: {app: new ObjectId(objectid)}},
                {$group: {_id: "$uid", amt: {$sum: 1}}}
              ])
Run Code Online (Sandbox Code Playgroud)

以前这段代码工作正常,但最近我开始在sails中获得以下stacktrace:

error: TypeError: Argument must be a string
    at TypeError (native)
    at Buffer.write (buffer.js:791:21)
    at serializeObjectId (/Users/user/git/pivot/code/node_modules/sails-mongo/node_modules/bson/lib/bson/parser/serializer.js:242:10)
    at serializeInto (/Users/user/git/pivot/code/node_modules/sails-mongo/node_modules/bson/lib/bson/parser/serializer.js:699:17)
    at serializeObject (/Users/user/git/pivot/code/node_modules/sails-mongo/node_modules/bson/lib/bson/parser/serializer.js:280:18)
    at serializeInto (/Users/user/git/pivot/code/node_modules/sails-mongo/node_modules/bson/lib/bson/parser/serializer.js:705:17)
    at serializeObject (/Users/user/git/pivot/code/node_modules/sails-mongo/node_modules/bson/lib/bson/parser/serializer.js:280:18)
    at serializeInto (/Users/user/git/pivot/code/node_modules/sails-mongo/node_modules/bson/lib/bson/parser/serializer.js:551:17)
    at serializeObject (/Users/user/git/pivot/code/node_modules/sails-mongo/node_modules/bson/lib/bson/parser/serializer.js:280:18)
    at serializeInto (/Users/user/git/pivot/code/node_modules/sails-mongo/node_modules/bson/lib/bson/parser/serializer.js:705:17)
    at serialize (/Users/user/git/pivot/code/node_modules/sails-mongo/node_modules/bson/lib/bson/bson.js:47:27)
Run Code Online (Sandbox Code Playgroud)

这是抱怨,因为ObjectId我这样导入:

var ObjectId = require('mongodb').ObjectID;
Run Code Online (Sandbox Code Playgroud)

正如我之前所说,这工作正常但不再适用.我真的很困惑.如果我将objectId作为字符串,它将不会返回任何结果.如果我保持原样(因为它之前工作)它会抛出异常.这是什么问题?

我看过以下内容:

https://docs.mongodb.com/v3.0/reference/operator/aggregation/cmp/#exp._S_cmp

我能够在robomongo做到这一点:

 db.getCollection("openevent").aggregate([
                {$match: {app: new ObjectId(OBJECT_ID) }}, …
Run Code Online (Sandbox Code Playgroud)

mongodb node.js sails.js

7
推荐指数
2
解决办法
3509
查看次数

标签 统计

mongodb ×1

node.js ×1

sails.js ×1