我的文档具有以下结构:
{
"somekey1": "somevalue1",
"data" : [
[
{
"value" : 0.807689530228178,
"unit" : "mL"
},
{
"value" : 0.7392892800962352,
"unit" : "mL"
},
],
[
{
"value" : 0.8314139708574444,
"unit" : "mL"
},
{
"value" : 0.09766834482756892,
"unit" : "mL"
}
],
[
{
"value" : 0.3821786847386669,
"unit" : "mL"
},
{
"value" : 0.18408410591658442,
"unit" : "mL"
}
]
]
}
返回具有特定范围值的所有值/单位对象的最有效方法是什么? (例如> 0.7?)尝试搜索但没有提出任何有用的信息。可以通过单个查找或聚合操作来完成吗?
答案 0 :(得分:1)
您可以使用聚合来执行此操作:
db.collection.aggregate([{
$unwind: '$data',
}, {
$unwind: '$data',
}, {
$match: {
'data.value': {
$gt: 0.7
}
}
}, {
$project: {
_id: 0,
value: "$data.value",
unit: "$data.unit",
},
}])