[MONGODB] MongoDB를이 - 어떻게 수집 안에 중첩 된 항목에 대한 쿼리하는?
MONGODBMongoDB를이 - 어떻게 수집 안에 중첩 된 항목에 대한 쿼리하는?
나는 일부 데이터를 가지고 그 다음과 같다 :
[
{
"_id" : ObjectId("4e2f2af16f1e7e4c2000000a"),
"advertisers" : [
{
"created_at" : ISODate("2011-07-26T21:02:19Z"),
"category" : "Infinity Pro Spin Air Brush",
"updated_at" : ISODate("2011-07-26T21:02:19Z"),
"lowered_name" : "conair",
"twitter_name" : "",
"facebook_page_url" : "",
"website_url" : "",
"user_ids" : [ ],
"blog_url" : "",
},
나는이 같은 쿼리가 광고주의 ID를 줄 것이라고 생각했다 :
var start = new Date(2011, 1, 1);
> var end = new Date(2011, 12, 12);
> db.agencies.find( { "created_at" : {$gte : start , $lt : end} } , { _id : 1 , program_ids : 1 , advertisers { name : 1 } } ).limit(1).toArray();
하지만 내 쿼리가 작동하지 않았다. 내가 얻고 싶은 분야의 내 목록에 중첩 된 요소 내부의 필드를 추가 할 수있는 방법 어떤 생각?
감사!
해결법
-
==============================
1.사용 쿼리 (예를 들어, advertisers.name) 표기법을 점하고 중첩 된 객체의 필드를 검색 :
사용 쿼리 (예를 들어, advertisers.name) 표기법을 점하고 중첩 된 객체의 필드를 검색 :
db.agencies.find({ "advertisers.created_at": { $gte: start, $lt: end } }, { _id: 1, program_ids: 1, "advertisers.name": 1 } }).limit(1).toArray();
참조 : 필드의 하위 집합을 가져 그리고 점 표기법
-
==============================
2.
db.agencies.find( { "advertisers.created_at" : {$gte : start , $lt : end} } , { program_ids : 1 , advertisers.name : 1 } ).limit(1).pretty();
-
==============================
3.MongoDB를 그 당신이 요소의 배열 내에서 볼 수 있습니다 제공한다는 점 표기법이라는 한 가지가있다. 그것을 사용하면 입력 할 각 배열 점을 추가하는 등 간단하다.
MongoDB를 그 당신이 요소의 배열 내에서 볼 수 있습니다 제공한다는 점 표기법이라는 한 가지가있다. 그것을 사용하면 입력 할 각 배열 점을 추가하는 등 간단하다.
귀하의 경우에는
"_id" : ObjectId("4e2f2af16f1e7e4c2000000a"), "advertisers" : [ { "created_at" : ISODate("2011-07-26T21:02:19Z"), "category" : "Infinity Pro Spin Air Brush", "updated_at" : ISODate("2011-07-26T21:02:19Z"), "lowered_name" : "conair", "twitter_name" : "", "facebook_page_url" : "", "website_url" : "", "user_ids" : [ ], "blog_url" : "", }, { ... }
다음과 같은 : {쿼리 'advertisers.created_at'} 당신이 그들 각자 내부의 속성 created_at를 찾는 광고주의 배열 내부에 가고 싶은 경우에, 당신은 단순히 속성을 사용하여 쿼리를 작성할 수 있습니다
db.agencies.find( { 'advertisers.created_at' : { {$gte : start , $lt : end} ... }
from https://stackoverflow.com/questions/10885044/mongodb-how-to-query-for-a-nested-item-inside-a-collection by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] MongoDB를 사용 몽구스의 대량 upsert (0) | 2019.12.06 |
---|---|
[MONGODB] NodeJS에서 몽고 데이터베이스에 삽입 된 문서의 _id를 가져옵니다 (0) | 2019.12.06 |
[MONGODB] 임베디드 데이터베이스로 사용할 수 MongoDB를 수 있습니까? (0) | 2019.12.06 |
[MONGODB] 당신은 어떻게 JSON 개체에서 이미지 파일을 배치해야합니까? (0) | 2019.12.06 |
[MONGODB] 산화 마그네슘 (MgO) 세션을 유지하는 모범 사례 (0) | 2019.12.06 |