2017-02-26 32 views
0

這流星蒙戈命令試圖獲得文件與emails[0].address == [email protected],但它是失敗的,任何想法? THX找到文件的位置數組的項目等於一個字符串

db.users.findOne({'emails[0].address':'[email protected]'}).pretty()

"emails" : [ 
     { 
      "address" : "[email protected]", 
+0

您是否只想查找第一封電子郵件與給定字符串相同或其中任何電子郵件地址與其匹配的項目? – MasterAM

+0

@MasterAM只有第一封電子郵件,但自從您提問以後,最好知道給定的電子郵件是否存在。 thx –

+0

只需查詢「email.address」就可以實現。但是,請注意,有一個專用的方法,['Accounts.findUserByEmail'](http://docs.meteor.com/api/passwords.html#Accounts-findUserByEmail),它考慮了區分大小寫。 – MasterAM

回答

1

爲了使它的工作,請更改emails[0].addressemails.0.address

請參閱在這種情況下如何使用dot notation的文檔。

0

只有當您正在查找的字符串是數組的第一個元素時,它纔會起作用。要搜索整個數組,您需要$ elemMatch。例如

db.users.findOne({emails: { 
    $elemMatch: {address: '[email protected]'} 
}}) 
相關問題