mongodb - 在 MongoDB Compass 中使用 ObjectID 的问题
问题描述
我正在学习使用 MongoDB,我在 cloud.mongodb.com 的云中创建了一个集群,并使用 MongoDb Compass vs 1.22.1 连接到它。我正在尝试学习一些基本命令,并尝试使用 find() 命令从我的集合中选择项目以按 id 过滤。
我已经尝试过我所看到的到处都被引用的东西,比如:
db.recipes.find({_id: ObjectID("5e877cba20a4f574c0aa56da")});
或者
db.recipes.find({'_id': ObjectID("5e877cba20a4f574c0aa56da")});
我总是得到输出:
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>)
如果我不使用 ObjectID,例如:
db.recipes.find({'_id':"5e877cba20a4f574c0aa56da"});
我没有收到错误,但没有输出,因为我猜 _id 不是“5e877cba20a4f574c0aa56da”而是 ObjectID(“5e877cba20a4f574c0aa56da”)。
我不知道为什么不能在 Compass MongoSH 中使用 ObjectID,欢迎任何帮助。谢谢
解决方案
对于较新的版本,您必须使用
db.recipes.find({_id: ObjectId("5e877cba20a4f574c0aa56da")});
如果您使用的是 1.10.x 之前的旧版本,您可以使用:
db.recipes.find({"_id":{"$oid":"5e877cba20a4f574c0aa56da"}});
推荐阅读
- apache-nifi - 安全环境中的 Apache Nifi 和注册表 - 存储桶不可用
- laravel - 在我的 Inertia laravel 应用程序中获取 View [app] not found 错误
- typescript - 如何推断赛普拉斯的正确类型?
- java - 将一组按钮与其资源 ID 相关联
- installation - 您如何找出 Inno Setup 可用的任务和任务名称
- firebase - setBackgroundMessageHandler 未在终止状态下调用
- c - 将二维数组除以函数中的常数
- python-3.x - paramiko ssh 返回 []
- html - 如何在 VSCode 中添加自定义 emmet 片段?
- python - 如何使用客户端库(Python)附加到 BigQuery 中的分区表?