Mongo ドキュメント ID が文字列である場合、_id としてクエリするにはどうすればよいでしょうか? 質問する

Mongo ドキュメント ID が文字列である場合、_id としてクエリするにはどうすればよいでしょうか? 質問する

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

おすすめ記事