编写查询以在嵌套对象

时间:2017-09-22 13:46:53

标签: json mongodb-query nosql

所以我正在寻找一种检查我的数据库中是否收到电子邮件的方法。

数据是嵌套的,对象如下所示:



{
  "_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"}}找到了它!

所以我必须编写整个嵌套数据才能找到它。由于用户可以通过更改年龄等字段来绕过寄存器,因此无法使用该查询。

感谢您的时间。

2 个答案:

答案 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);

希望这有帮助!