我正在尝试编写一个查询,该查询将仅返回包含具有特定名称的子文档的文档
例如:第一个文档
{
"_id" : ObjectId("5df38168358d1e3cec1af759"),
"sysInfo" : {
"User" : "blatman",
"OS" : "Windows",
"GPU" : "NVIDIA GeForce GTX 1080 Ti ",
"CPU" : "Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz ",
"RAM" : 65478
},
"performance" : {
"step1" : {
"1" : {
"RT" : 502.41438310258566
}
}
}
}
第二个文档
{
"_id" : ObjectId("5df38168358d1e3cec1af759"),
"sysInfo" : {
"User" : "blatman",
"OS" : "Windows",
"GPU" : "NVIDIA GeForce GTX 1080 Ti ",
"CPU" : "Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz ",
"RAM" : 65478
},
"performance" : {
"step2" : {
"1" : {
"RT" : 505.41438310258566
}
}
}
}
我只希望在“匹配”之后返回第一个文档(子文档为“ step1”的文档)
答案 0 :(得分:0)
您可以对查询或聚合框架使用$exists。猜猜您自从提到match
以来就一直在使用聚合框架。
尝试一下:
db.collection.aggregate([
{
$match: {
"performance.step1": {
$exists: 1
}
}
}
])