Mongodb 在返回文档的子文档中查找
我有一个类似这样的收藏:Mongodb 在返回文档的子文档中查找,mongodb,find,Mongodb,Find,我有一个类似这样的收藏: { "colors": ["blue","white"], "items": { "old": { "name": "test" } "current": { "name": "new_test" } } }, { "colors": ["red","green"], "items": { "old": { "name": "test2" } "current
{
"colors": ["blue","white"],
"items": {
"old": {
"name": "test"
}
"current": {
"name": "new_test"
}
}
},
{
"colors": ["red","green"],
"items": {
"old": {
"name": "test2"
}
"current": {
"name": "new_test2"
}
}
},
db.collection.find({"items": { "old": { "name": "test" } } })
可以这样使用find吗:
{
"colors": ["blue","white"],
"items": {
"old": {
"name": "test"
}
"current": {
"name": "new_test"
}
}
},
{
"colors": ["red","green"],
"items": {
"old": {
"name": "test2"
}
"current": {
"name": "new_test2"
}
}
},
db.collection.find({"items": { "old": { "name": "test" } } })
因此命令将返回:
{
"colors": ["blue","white"],
"items": {
"old": {
"name": "test"
}
"current": {
"name": "new_test"
}
}
}
这可能吗?是的,您可以使用“”进入对象:
db.collection.find({"items.old.name": "test" })
您使用的查询语法也可以工作,但它具有不同的语义:它将匹配整个子文档以获得相等性,而不仅仅是单个字段。例如,以下查询还将返回一个结果:
db.foo.find({"items.old": {"name" : "test"} }),
但是db.collection.find({“items”:{“old”:{“name”:“test”}}}})
没有,因为items
还包含一个当前
字段 是的,您可以使用“”进入对象:
db.collection.find({"items.old.name": "test" })
您使用的查询语法也可以工作,但它具有不同的语义:它将匹配整个子文档以获得相等性,而不仅仅是单个字段。例如,以下查询还将返回一个结果:
db.foo.find({"items.old": {"name" : "test"} }),
但是db.collection.find({“items”:{“old”:{“name”:“test”}}}})
没有,因为items
还包含一个当前
字段