查找数组项等于字符串的文档

时间:2017-02-26 08:58:22

标签: mongodb meteor

这个Meteor mongo命令尝试使用emails[0].address == abc@xyz获取文档,但它失败了,有什么想法吗? THX

db.users.findOne({'emails[0].address':'abc@xyz.com'}).pretty()

"emails" : [
        {
            "address" : "abc@xyz.com",

2 个答案:

答案 0 :(得分:1)

要使其正常运行,请将emails[0].address更改为emails.0.address

请参阅有关如何在这种情况下使用dot notation的文档。

答案 1 :(得分:0)

仅当您要查找的字符串是数组的第一个元素时才会起作用。要搜索整个数组,您需要$ elemMatch。 e.g。

db.users.findOne({emails: {
    $elemMatch: {address: 'abc@xyz.com'}
}})