0
나는 구조는 아래와 같이있다 : 나는 name
속성에 대해 같은 논리를 적용하려면,Mongo DB에서 배열 내부 요소를 검색하는 방법은 무엇입니까?
db.test.find({"nested_documents.x": 1},{_id: 0, nested_documents: {$elemMatch: {x: 1}}}
을하지만 :
{
field1: "somevalue",
name:"xtz",
nested_documents: [
{
x:1,
y:2,
info:[
{name:"sachin",value:"test"},
{name:"sachin", value:"test"}
]
},
{
x:1,
y:3,
info:[
{name:"sachin1",value:"test"},
{name:"sachin2", value:"test"}
]
},
{
x:4,
y:3,
info:[
{name:"sachin",value:"test"},
{name:"sachin", value:"test"}
]
}
]
}
는 내가 코드 아래 사용하여 1 차 배열의 내부 요소의 존재를 검색 할 수 있다는 것을 알고. 'sachin'이라는 이름의 문서 만 검색하려고합니다.
db.test.find({"nested_documents.info.name": "sachin"},
{_id: 0, 'nested_documents.info': {$elemMatch: {name: "sachin"}}});
그러나 몽고 DB는 지원하지 않습니다 말한다 : 나는 시도가 어떤 는 다음과 같습니다 '.' .? :(투사 내부
연산자이 작업을 수행하는 다른 방법이 있나요 문서를 삽입 할
명령 (명령 프롬프트 또는 코드를 사용하여)은 다음과 같습니다
db.test.insert({
field1: "somevalue",
name:"xtz",
nested_documents: [
{
x:1,
y:2,
info:[
{name:"sachin",value:"test"},
{name:"sachin", value:"test"}
]
},
{
x:1,
y:3,
info:[
{name:"sachin1",value:"test"},
{name:"sachin2", value:"test"}
]
},
{
x:4,
y:3,
info:[
{name:"sachin",value:"test"},
{name:"sachin", value:"test"}
]
}
]
}
)
나는대로 출력을 기대하고있다 :
{ "_id" : ObjectId("5142e0f153cd2aab3a3bae5b"),
"nested_documents" : [
{ "x" : 1, "y" : 2,
"info" : [
{ "name" : "sachin", "value" : "test" },
{ "name" : "sachin", "value" : "test" }
]
},
{ "x" : 4, "y" : 3,
"info" : [ { "name" : "sachin", "value" : "test" },
{ "name" : "sachin", "value" : "test" }
]
}
]
}
샘플 문서를 편집하여 삽입물에 직접 붙여 넣을 수 있다면 도움이됩니다. – JohnnyHK
@JohnnyHK : 코드를 업데이트했습니다. – Sach
이것은 다른 질문의 또 다른 맛입니다. 집계 프레임 워크를 사용하여이 작업을 수행하는 방법에 관한 해당 질문에 링크 된 복제본을 참조하십시오. – JohnnyHK