我有一个这种结构的集合:
{
"name": "1",
"array1": [
{
"arrayname1A" : "A",
"array2": [
{ "value": "1" },
{ "value": "3" }
]
},
{
"arrayname1B": "B",
"array2": [
{ "value": "5" },
]
}
]
},
{
"name": "2",
"array1": [
{
"arrayname1A": "A",
"array2": [
{ "value": "1" },
{ "value": "7" }
]
}
]
}
如何从每个不同的array2中提取唯一的“值”?我正在寻找的最终结果将是"1","3","5","7"
,没有重复的值。
答案 0 :(得分:0)
只需使用distinct()
方法和dot notation即可访问“值”字段。
db.collection.distinct('array1.array2.value')
产生:
[ "1", "3", "5", "7" ]