0

mongoDB で「unique6」を含む特定の配列 (または配列のキー) を取得するにはどうすればよいですか。

注: 配列内の値は一意です。

{
    "_id" : "DETbQx7i9Sunu9w88",
    "someKey" : {
           "arr1" : ["unique1", "unique2", "unique3"],
           "arr2" : ["unique4", "unique5", "unique6"],
           "arr3" : ["unique7", "unique8", "unique9"]      
    }
}
4

1 に答える 1

0

MongoDB では、ネイティブ JavaScript 関数を使用して目的の BSON 属性を取得できます。find()基本的に、とメソッドの組み合わせを使用してコレクション内のドキュメントを反復処理できますforEach()。または、クエリが必要な特定のドキュメントがある場合findOne()は、単一のドキュメントを返すメソッドを使用できます。"unique6"以下は、前者を使用して要素を含む配列キーを取得する方法を Mongo シェルで示しています。

db.collection.find().forEach(function (doc){
    var arrayKey = "",
        obj = doc["someKey"];
    for (var key in obj) {        
        obj[key].forEach(function(e) {
            if (e == "unique6") arrayKey = key
        });
    }
    print(arrayKey); // <-- this variable has the array key    
});
于 2015-04-10T09:07:10.403 に答える