嗯,我不知道如何清楚地说明标题。希望以下解释会更好。
我有这样的架构:
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”键
答案 0 :(得分:4)
要搜索子键,只需给出由句点分隔的键的路径。
db.company.findOne({"contact.url": "cnn.com"})
要找出哪些记录有联系人网址:
db.company.findOne({"contact.url": {$ne: null}})
请注意,除非您为查询的子项创建索引,否则这些查询将是完整集合扫描。谨慎使用。