我有一个在流星中看起来有点像这样的json。
{
"_id": "someid",
"createdAt": ISODate("2015-03-10T14:26:02.430Z"),
"emails": [{
"address": "raven@corvid.com",
"verified": false
}, {
"address": "crow@corvid.com",
"verified": false
}]
}
我想搜索数据库并查找是否有人有给定的电子邮件,例如crow@corvid.com
。如果它只是一个静态值,你可以Meteor.users.findOne({ email: "crow@corvid.com" });
,但列表会使它更复杂。
这样做的有效方法是什么?
答案 0 :(得分:2)
您可以使用$elemMatch运算符将包含crow@corvid.com
的文档作为地址值进行匹配。
Meteor.users.findOne({ emails: {$elemMatch: {address:"crow@corvid.com" }}})
答案 1 :(得分:0)
您也可以索引数据库,您可以索引嵌入的文档,您的情况是数组Meteor.users.createIndex( { "emails" : 1 } )