给定的是一个像下面这样的文档
{
"type" : "sometype",
"title" : "sometitle",
"references":{
"1": "someref",
"2": "otherref",
"3": ""
}
}
如何找到someref
在子文档中设置了参考的所有文档references
?
一个简单的find({references: "someref"})
不起作用,因为引用不是一个有效的数组。
文档结构对于此类查询并不理想,但您可以使用$objectToArray运算符进行聚合:
db.collection.aggregate([
{$addFields: {refs: {$objectToArray: "$references"}}},
{$match: {"refs.v": "someref"}},
{$project:{refs: 0}}
])
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句