【问题标题】:Writing a query to find a entry in a nested object编写查询以在嵌套对象中查找条目
【发布时间】:2017-09-22 13:46:53
【问题描述】:

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

数据嵌套,对象如下:

{
  "_id": {
    "$oid": "59c50b9190c4fe1c54c8ca85"
  },
  "scriptData": {
    "email": "email1@address.com",
    "age": "10",
    "lang": "undefined",
    "avatar": "undefined"
  }
}

我正在使用 findOne() 查找集合中的数据,问题是我不知道如何正确编写查询。

我想在那里查找电子邮件值。尝试了一些查询,例如:

{"email" : "email1@address.com"} 找到任何东西

{ "scriptData" : {"email" : "email1@address.com"} } 也没有

{ "scriptData" : {"email" : "email1@address.com" , "age": "10", "lang": "undefined","lang": "undefined"} } 找到了!

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

感谢您的宝贵时间。

【问题讨论】:

  • 你的问题是什么,这与 jquery 有什么关系?
  • 更改标题大写以符合约定。
  • idk stackoverflow 标记了它...

标签: json mongodb-query nosql


【解决方案1】:

根据上述问题中的描述,请尝试在 MongoDB shell 中执行以下查询。

db.collection.find({
    'scriptData.email': 'email1@address.com'
})

【讨论】:

  • 以这种方式编写了查询并且它工作正常。感谢您的宝贵时间!
【解决方案2】:

您可以通过以下方式使用 javascript 访问它。但是你的问题没有多大意义,所以我不能给你更好的答案。

var smth = {
  "_id": {
    "$oid": "59c50b9190c4fe1c54c8ca85"
  },
  "scriptData": {
    "email": "email1@address.com",
    "age": "10",
    "lang": "undefined",
    "avatar": "undefined"
  }
};

console.log(smth.scriptData.email);

希望这会有所帮助!

【讨论】:

  • 好吧,我有一个数据库,我加载了一个集合 likee.a
  • Idk 如果它与 jquery 相关。 Stackoverflow 自动标记它。好吧,我正在使用这个 var playerCollection = Spark.systemCollection("player");然后我在该集合中搜索: var result = playerCollection.findOne("The query data");所以我需要找出如何正确编写这个查询。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-31
  • 2015-01-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多