如果我有一个字符串形式的 mongo 文档 ID,我该如何查询它作为 _id?
执行 .find({_id:'stringID'})
是否可以正常工作,还是我需要先将其转换为 bson 对象?
最佳答案
你是说你有 ObjectId 的 24 位十六进制数字字符串?
假设这就是您的意思,大多数驱动程序都有办法获取字符串并将其转换为 ObjectId。在 JavaScript 中是:
.find({_id:new ObjectId("4f91bfcfaa7c5687a0c686d4")})
更新 对 Node native 驱动程序更有用(来自 https://github.com/christkv/node-mongodb-native 的文档):
// Get the objectID type
var ObjectID = require('mongodb').ObjectID;
var idString = '4e4e1638c85e808431000003';
collection.findOne({_id: new ObjectID(idString)}, console.log) // ok
collection.findOne({_id: idString}, console.log) // wrong! callback gets undefined
关于javascript - 如果我有一个字符串形式的 mongo 文档 ID,我该如何将其作为 _id 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10253972/