在MongoDB罗盘中使用ObjectID时出现问题

时间:2020-11-02 15:52:51

标签: mongodb mongodb-query mongo-shell objectid

我正在学习使用MongoDB,我在cloud.mongodb.com的云中创建了一个集群,并使用MongoDb Compass vs 1.22.1连接到它。 我正在尝试学习一些基本命令,并且尝试使用find()命令从ID中筛选出我的收藏夹中的项。

我尝试了所有地方都引用的内容,例如:

from . import views

db.recipes.find({_id: ObjectID("5e877cba20a4f574c0aa56da")});

我总是得到输出:

db.recipes.find({'_id': ObjectID("5e877cba20a4f574c0aa56da")});

如果我不使用ObjectID,例如:

ReferenceError: ObjectID is not defined
    at evalmachine.<anonymous>:5:10
    at evalmachine.<anonymous>:7:3
    at Script.runInContext (vm.js:134:20)
    at Object.runInContext (vm.js:297:6)
    at ElectronInterpreterEnvironment.sloppyEval (C:\Users\lfili\AppData\Local\MongoDBCompass\app-1.22.1\resources\app.asar\node_modules\@mongodb-js\compass-shell\lib\index.js:140827:28)
    at Interpreter.<anonymous> (C:\Users\lfili\AppData\Local\MongoDBCompass\app-1.22.1\resources\app.asar\node_modules\@mongodb-js\compass-shell\lib\index.js:210735:41)
    at step (C:\Users\lfili\AppData\Local\MongoDBCompass\app-1.22.1\resources\app.asar\node_modules\@mongodb-js\compass-shell\lib\index.js:210685:19)
    at Object.next (C:\Users\lfili\AppData\Local\MongoDBCompass\app-1.22.1\resources\app.asar\node_modules\@mongodb-js\compass-shell\lib\index.js:210615:14)
    at C:\Users\lfili\AppData\Local\MongoDBCompass\app-1.22.1\resources\app.asar\node_modules\@mongodb-js\compass-shell\lib\index.js:210587:67
    at new Promise (<anonymous>)

我没有错误,但是没有输出,因为我猜_id不是“ 5e877cba20a4f574c0aa56da”而是ObjectID(“ 5e877cba20a4f574c0aa56da”)。

我不知道为什么不能在Compass MongoSH中使用ObjectID,欢迎任何帮助。 谢谢

1 个答案:

答案 0 :(得分:0)

对于较新的版本,您必须使用

db.recipes.find({_id: ObjectId("5e877cba20a4f574c0aa56da")});

如果您使用的是1.10.x之前的旧版本,则可以使用:

db.recipes.find({"_id":{"$oid":"5e877cba20a4f574c0aa56da"}});