2017-02-26 10 views
0

このMeteor mongoコマンドはemails[0].address == [email protected]の文書を取得しようとしますが、失敗しています。それは作業emails.0.addressemails[0].addressを変更してくださいようにするに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

dot notationの使用方法に関するドキュメントをご覧ください。

0

あなたが探している文字列が配列の最初の要素である場合にのみ動作します。配列全体を検索するには、$ elemMatchが必要です。例えば

db.users.findOne({emails: { 
    $elemMatch: {address: '[email protected]'} 
}}) 
関連する問題