这是我的文件:
"_id" : "dAWcFHJzDPJ2XT9Sh",
"createdAt" : ISODate("2016-04-22T18:03:47.761Z"),
"services" : {
"password" : {
"bcrypt" : "$2a$10$NYf53o/Uu8PvHPsGllRGA.WLbVpspNM4jk/6FtCzZLW.70.uQ2HXe"
},
"resume" : {
"loginTokens" : [
{
"when" : ISODate("2016-04-22T18:03:47.771Z"),
"hashedToken" : "dECxxuV/QyU2AU+/Zcrqc2Ftq64ZTrdHj5mN/rTGrxU="
}
]
}
},
"emails" : [
{
"address" : "Adammoisa@gmail.com",
"verified" : false
}
],
"profile" : {
"first_name" : "Adam",
"last_name" : "Moisa"
}
我想在电子邮件[i]地址
中搜索电子邮件以下是我尝试过的内容(我使用的是Meteor; Meteor.users.find({})。fetch()将数据库中的所有用户作为上述格式的对象返回:< / p>
Meteor.users.find({"emails[0]address": "Adam"}).fetch();
我希望将上述对象作为&#34; Adam&#34;是电子邮件[0]地址
中的电子邮件谢谢!
答案 0 :(得分:0)
无需指定索引。
Meteor.users.find({"emails.address": "Adam"}).fetch();
答案 1 :(得分:0)
不需要指定索引,因此您可以这样做:
Meteor.users.find({"emails.address": "Adam"}).fetch();
但是,如果您确实想要使用特定索引,请执行以下操作:
Meteor.users.find({"emails[0].address": "Adam"}).fetch();
答案 2 :(得分:0)
想出来:
Meteor.users.find({"emails.address": "Adammoisa@gmail.com"}).fetch();
您可以执行emails.address,它会将任何地址键与您在电子邮件中任意数组中的值匹配。
(来自searchSource使用正则表达式使其适用于匹配的任何内容:
function buildRegExp(searchText) {
// this is a dumb implementation
var parts = searchText.trim().split(/[ \-\:]+/);
return new RegExp("(" + parts.join('|') + ")", "ig");
}