[MongoDB] 全ての collection から特定の ObjectId の document を探すクエリ

Tue, March 13, 2018 - 1 min read

MongoDB で全ての collection から特定の ObjectId の document を探すクエリをご紹介します。

MongoDB | モンゴディービー

特定の ObjectId から全 collection を走査して document を探すクエリ

var id = ObjectId('5a746d1757eaba024cefac5e');

var printDocById = function(id) {
  var collectionNames = db.getCollectionNames();
  collectionNames.forEach(function(collectionName) {
    print(collectionName);
    var doc = db[collectionName].findOne({ _id: id });
    if (doc) {
      printjson(doc);
    }
  });
};

printDocById(id);

// 以下、実行結果です。

/**
tags
users
{
  "_id" : ObjectId("5a746d1757eaba024cefac5e"),
  "name" : "hoge",
  "createdAt" : ISODate("2017-01-01T00:00:00Z")
}
**/

以上、どの collection か分からないけど ObjectId だけを手がかりに特定の document を見つけたい、現場からお送りしました。