1. ホーム
  2. mongodb

[解決済み] Mongo、IDの一覧から検索

2023-07-14 18:16:27

質問

MongoDBのIDを文字列で返す処理があります。

[512d5793abb900bf3e20d012, 512d5793abb900bf3e20d011]

そして、Mongoに一回クエリを発行して、一致するドキュメントをリストと同じ順番で取得したいのです。

これを行うためのシェル記法を教えてください。

どのように解決するのですか?

文字列をObjectIdsに変換した後に $in 演算子を使って、リストにあるドキュメントを取得することができます。ドキュメントをリストの順番に戻すためのクエリ表記はありませんが、以下を参照してください。 これ は、その対処法をいくつかご紹介します。

var ids = ['512d5793abb900bf3e20d012', '512d5793abb900bf3e20d011'];
var obj_ids = ids.map(function(id) { return ObjectId(id); });
db.test.find({_id: {$in: obj_ids}});