如何“查找”集合并将值与MongoDB中的内部对象进行比较?

时间:2011-11-07 20:45:38

标签: mongodb

嗯,我不知道如何清楚地说明标题。希望以下解释会更好。

我有这样的架构:

company = new Schema {
  name: String,
  contact: {}
}

例如:

{
  name:'cnn'
  contact: {
      address:'whatever',
      phone1: '1-800-123-1234',
      url: 'cnn.com'
   }
}

当我找到(或找到一个)时,我可以这样做..

db.company.findOne({name:'cnn'});

如果我想在“联系人”中搜索值,该怎么办?

e.g。用url ='cnn.com'

搜索记录

或找出哪些记录在“联系人”中有“url”键

1 个答案:

答案 0 :(得分:4)

要搜索子键,只需给出由句点分隔的键的路径。

db.company.findOne({"contact.url": "cnn.com"})

要找出哪些记录有联系人网址:

db.company.findOne({"contact.url": {$ne: null}})

请注意,除非您为查询的子项创建索引,否则这些查询将是完整集合扫描。谨慎使用。