mongo ドキュメント ID が文字列である場合、それを _id としてクエリするにはどうすればよいですか?
正しく動作しますか.find({_id:'stringID'})
、それとも最初に bson オブジェクトに変換する必要がありますか?
ベストアンサー1
ObjectId の 24 桁の 16 進文字列があるということですか?
それがあなたの言いたいことだと仮定すると、ほとんどのドライバーには文字列を取得してそれを ObjectId に変換する方法があります。JavaScript では次のようになります。
.find({_id:new ObjectId("4f91bfcfaa7c5687a0c686d4")})
更新しましたノードネイティブドライバにとってもう少し便利になるように(ネイティブ):
// 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