[英]Search through list of objects in efficient way mongo
I have a json that looks a bit like this in meteor. 我有一个在流星中看起来像这样的json。
{
"_id": "someid",
"createdAt": ISODate("2015-03-10T14:26:02.430Z"),
"emails": [{
"address": "raven@corvid.com",
"verified": false
}, {
"address": "crow@corvid.com",
"verified": false
}]
}
I want to search the database and find if anyone has a given email, say, crow@corvid.com
. 我想搜索数据库,查找是否有人给定电子邮件,例如
crow@corvid.com
。 If it were just a static value, you could do Meteor.users.findOne({ email: "crow@corvid.com" });
如果只是静态值,则可以执行
Meteor.users.findOne({ email: "crow@corvid.com" });
, but the list makes it more complicated. ,但是列表使它更加复杂。
What is the efficient way to do this? 有效的方法是什么?
您可以使用$ elemMatch运算符执行此操作,以匹配包含crow@corvid.com
作为地址值的文档。
Meteor.users.findOne({ emails: {$elemMatch: {address:"crow@corvid.com" }}})
您还可以为数据库建立索引,可以为嵌入的文档建立索引,您的案例是一个数组Meteor.users.createIndex( { "emails" : 1 } )
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.