"session": {
"number": 123,
"words": {
"1": {
"id": 10,
"name": "Hello"
},
"2": {
"id": 13,
"name": "Hi"
},
"3": {
"id": 135,
"name": "Hey"
}
}
}
我们在MongoDB数据库中具有给定结构的数据,我无法对其进行修改。
我可以基于查询session.number
得到的对象是123
,但是现在的挑战是我们知道嵌套的name
是Hi,Hey或Hello,但是对象内部的增量键单词是无法预测的,是否可以根据“名称”字段进行查询?
答案 0 :(得分:0)
您可以使用$objectToArray
并将words属性转换为数组,然后根据需要查询它,可以使用以下命令:
collection.aggregate([
{
$project: {
words: { $objectToArray: "$session.words" }
}
},
{
$match: {
'words.v': 'hi'
}
}
]);
您可以阅读docs以获得更多信息。