所以我正在寻找一种检查我的数据库中是否收到电子邮件的方法。
数据是嵌套的,对象如下所示:
{
"_id": {
"$oid": "59c50b9190c4fe1c54c8ca85"
},
"scriptData": {
"email": "email1@address.com",
"age": "10",
"lang": "undefined",
"avatar": "undefined"
}
}

我使用findOne()查找集合中的数据,问题是我不知道如何正确编写查询。
我想在那里寻找电子邮件的价值。尝试了一些查询:
{"电子邮件" :" email1@address.com"}发现了什么
{" scriptData" :{"电子邮件" :" email1@address.com"}}没有什么
{" scriptData" :{"电子邮件" :" email1@address.com" ,"年龄":" 10"," lang":"未定义"," lang":" undefined"}}找到了它!
所以我必须编写整个嵌套数据才能找到它。由于用户可以通过更改年龄等字段来绕过寄存器,因此无法使用该查询。
感谢您的时间。
答案 0 :(得分:1)
根据上述问题中的描述,请尝试执行以下查询到MongoDB shell。
db.collection.find({
'scriptData.email': 'email1@address.com'
})
答案 1 :(得分:0)
以下是使用javascript访问它的方法。但是你的问题没有多大意义,所以我不能给你一个更好的答案。
var smth = {
"_id": {
"$oid": "59c50b9190c4fe1c54c8ca85"
},
"scriptData": {
"email": "email1@address.com",
"age": "10",
"lang": "undefined",
"avatar": "undefined"
}
};
console.log(smth.scriptData.email);
希望这有帮助!