我的馆藏包含有大量地图列表的文档。 E.g
{
name : 'Ned',
mapList :
[
{
type : 'DVD',
sales : 100
},
{
type : 'CD',
sales : 200
}
]
}
有没有办法在mapList属性中列出文档的键?
我在使用文档本身之前遇到过这个问题,并使用map reduce作为解决方案,遵循此处列出的答案:MongoDB Get names of all keys in collection
可以在这里使用map reduce还是有另一种方式?注意*我无法更改我的文档结构
编辑 - 我当前的方法和输出
mr = db.runCommand({
"mapreduce" : "entertainmentStats",
"map" : function() {
for (var key in this.mapList) { emit(key, null); }
},
"reduce" : function(key, stuff) { return null; },
"out": "entertainmentStats" + "_keys"
})
该方法与ly链接问题中列出的答案完全相同,除了我要对文档的mapList属性执行map reduce操作。我的输出键始终为空。
我尝试使用集合中的单个地图元素采用相同的方法,但它运行正常,但它不适用于地图数组