sourcecode

MongoDB에서 배열 배열 쿼리

copyscript 2023. 5. 4. 20:25
반응형

MongoDB에서 배열 배열 쿼리

이런 서류를 가지고 있습니다.

"ID" : "fruit1",
"Keys" : [["apple", "carrot", "banana"]]

키 = "키"를 쿼리하려면 어떻게 해야 합니까?다음 구문이 작동하지 않습니다.

db.myColl.results.find({ "Keys" : "carrot" });
db.myColl.results.find({ "Keys" : [["carrot"]] });

하지만 작업을 따르지만, 도움이 되지 않습니다.

db.myColl.results.find({ "Keys" : [["apple", "carrot", "banana]]});

이 쿼리에 대한 포인터는 유용합니다.감사해요.

흥미로운 질문입니다. 이것은 효과가 있을 것입니다.

 db.multiArr.find({'Keys':{$elemMatch:{$elemMatch:{$in:['carrot']}}}})

$elemMatch배열의 요소가 지정된 일치 식과 일치하는지 확인하는 데 사용됩니다. 따라서 중첩됩니다.$elemMatch더 깊이 중첩된 어레이로 이동합니다.

테스트 데이터

db.multiArr.insert({"ID" : "fruit1","Keys" : [["apple", "carrot", "banana"]]})
db.multiArr.insert({"ID" : "fruit2","Keys" : [["apple", "orange", "banana"]]})


db.multiArr.find({'Keys':{$elemMatch:{$elemMatch:{$in:['carrot']}}}})
{ "_id" : ObjectId("506555212aeb79b5f7374cbf"), "ID" : "fruit1", "Keys" : [ [ "apple", "carrot", "banana" ] ] }

db.multiArr.find({'Keys':{$elemMatch:{$elemMatch:{$in:['banana']}}}})

{ "_id" : ObjectId("506555212aeb79b5f7374cbf"), "ID" : "fruit1", "Keys" : [ [ "apple", "carrot", "banana" ] ] }
{ "_id" : ObjectId("5065587e2aeb79b5f7374cc0"), "ID" : "fruit2", "Keys" : [ [ "apple", "orange", "banana" ] ] }

첫 번째 위치 데이터의 배열을 찾으려면 0을 참조 인덱스로 사용하여 중첩 배열의 데이터를 가져옵니다.

db.getCollection('routes').find({"routeId" : 12,'routes._id':ObjectId("598da27a713f3e6acd72287f"),'routes.0.stops.0.orders.0._id':ObjectId("598da27a713f3e6acd722887")})

"cd_id": [{"id": "63fa3cd15595d06245a950ed", {"id": "63fa3cd15595d06245a950ed"},

merchant_id: {$elemMatch: {id: merchant } }

언급URL : https://stackoverflow.com/questions/12629692/querying-an-array-of-arrays-in-mongodb

반응형