这是我的文档模式
"translation" : {
"en" : {
"name" : "brown fox",
"description" : "the quick brown fox jumps over a lazy dog"
},
"it" : {
"name" : "brown fox ",
"description" : " the quick brown fox jumps over a lazy dog"
},
"fr" : {
"name" : "renard brun ",
"description" : " le renard brun rapide saute par-dessus un chien paresseux"
},
"de" : {
"name" : "brown fox ",
"description" : " the quick brown fox …Run Code Online (Sandbox Code Playgroud) 假设我有一个像下面这样的文档模型
{
"_id" : "QggaecdDWkZzMmmM8",
"features" : [
{
"language" : "en",
"values" : [
{
"name" : "feature 1",
"values" : [
"test",
"best"
]
},
{
"name" : "feature2",
"values" : [
"guest",
"nest"
]
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
现在我需要运行查询并返回特征的唯一名称和值对。就像一个文档的名称特征 1 带有“test”和最佳值,另一个文档具有相同的键(特征 1 具有不同的值,即“guest”),因此结果将是
name: featuer 1
values: [test, best and guest]
Run Code Online (Sandbox Code Playgroud)
到目前为止,我尝试了以下查询,但最后返回错误
db.getCollection('products').aggregate(
{$unwind: '$features'},
{$group:
{_id: "$features.values.name"},
name: {$addToSet: '$name'}
})
Run Code Online (Sandbox Code Playgroud)
错误信息是
例外:管道阶段规范对象必须只包含一个字段
mongodb mongodb-query aggregation-framework mongodb-aggregation