2016-02-02 40 views
3

https://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#findOneMongoError:無法規範化查詢:BADVALUE

美國的max選擇是與一些使用。

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

max是amethod方法,不是一種選擇,並且它需要一個BsonDocument作爲輸入:

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