Как получить документ по его собственному вложенному документу или массиву? - PullRequest
0 голосов
/ 29 января 2012

У меня есть такая структура документа:

{  
    "_id" : "4e76fd1e927e1c9127d1d2e8",  
    "name" : "***",  
    "embedPhoneList" : [  
        {  
            "type" : "家庭",  
            "number" : "00000000000"  
        },  
        {  
            "type" : "手机",  
            "number" : "00000000000"  
        }  
    ],  
    "embedAddrList" : [  
        {  
            "type" : "家庭",  
            "addr" : "山东省诸城市***"  
        },  
        {  
            "type" : "工作",  
            "addr" : "深圳市南山区***"  
        }  
    ],  
    "embedEmailList" : [  
        {  
            "email" : "********@gmail.com"  
        },  
        {  
            "email" : "********@gmail.com"  
        },  
        {  
            "email" : "********@gmail.com"  
        },  
        {  
            "email" : "********@gmail.com"  
        }  
    ]  
} 

То, что я не хочу делать, - это найти документ по его вспомогательному документу, например email в поле embedEmailList.Или если у меня есть такая структура

{  
    "_id" : "4e76fd1e927e1c9127d1d2e8",  
    "name" : "***",   
    "embedEmailList" : [  
        "123@gmail.com" ,  
        "********@gmail.com" ,  
        ]  
} 

, то embedEmailList - это массив, как найти, если есть 123@gmail.com?

Спасибо.

1 Ответ

2 голосов
/ 29 января 2012

Для поиска определенного значения в массиве mongodb поддерживает следующий синтаксис:

db.your_collection.find({embedEmailList : "foo@bar.com"});

См. здесь для получения дополнительной информации.

Для поиска значения во встроенном объекте поддерживается следующий синтаксис:

db.your_collection.find({"embedEmailList.email" : "foo@bar.com"});

См. здесь для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...