sql >> データベース >  >> NoSQL >> MongoDB

コレクションを指定せずにMongoDBでドキュメントを取得する

    はい。ただし、スケーラブルな方法ではありません(各コレクションにクエリを実行する必要があるため)。コレクションが2つか3つある場合は、これで問題ないかもしれませんが、デザインを確認して、なぜこれを行っているのかを理解する必要があります。ところで、なぜあなたは?

    1. データベース内のすべてのコレクションのリストを取得します。
    2. それらをループし、_idに基づいてクエリを実行します

    サンプルシェルコード:

    db.test1.save({});
    db.test2.save({});  
    db.test3.save({});
    db.test4.save({});
    db.test5.save({}); 
    db.test6.save({});
    
    db.test2.findOne(); // gives: { "_id" : ObjectId("4f62635623809b75e6b8853c") }
    
    db.getCollectionNames().forEach(function(collName) {
       var doc = db.getCollection(collName).findOne({"_id" : ObjectId("4f62635623809b75e6b8853c")});
       if(doc != null) print(doc._id + " was found in " + collName); 
    });  
    

    与える:4f62635623809b75e6b8853c was found in test2



    1. Ruby Mongoドライバー:日付間隔を探す方法は?

    2. ValueError:<解凍するには値が多すぎます>

    3. MongoDBのドキュメントフィールドの名前を変更するにはどうすればよいですか?

    4. 複数のコレクションに対してMongodbaggrigateフィルターを実行するにはどうすればよいですか?