MongoError: 无法规范化查询:BadValue。

3
该文档指出max选项应该使用数字。具体内容请参考https://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#findOne
var result =
    yield myCol.findOne({
        lol: lol
    }, {
        max: 1
    });

我遇到了这个错误:

但是:

 MongoError: Can't canonicalize query: BadValue $max must be a BSONObj
      at Function.MongoError.create (/home/karl/www/instantynode/src/node_modules/mongodb-core/lib/error.js:31:11)
      at queryCallback (/home/karl/www/instantynode/src/node_modules/mongodb-core/lib/cursor.js:266:34)
      at Callbacks.emit (/home/karl/www/instantynode/src/node_modules/mongodb-core/lib/topologies/server.js:95:3)
      at null.messageHandler (/home/karl/www/instantynode/src/node_modules/mongodb-core/lib/topologies/server.js:249:23)
      at Socket.<anonymous> (/home/karl/www/instantynode/src/node_modules/mongodb-core/lib/connection/connection.js:265:22)
      at emitOne (events.js:77:13)
      at Socket.emit (events.js:169:7)
      at readableAddChunk (_stream_readable.js:146:16)
      at Socket.Readable.push (_stream_readable.js:110:10)
      at TCP.onread (net.js:523:20)

编辑:刚刚意识到这种方法已经被弃用,使用find更好。

1个回答

1

max 是一个方法,而不是选项,它需要一个 BsonDocument 作为输入:

var result =
    yield myCol.findOne({
        lol: lol
    }).max({field1:1});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接