MongoDB在使用别名时返回两个数组



我是mongodb中的json。结构如下——

{
id: "1",
name: "sample",
user: [
{
data_alias: "ex",
value: "efg"
}
]
}

现在我希望data_alias是mongodb返回结果后的数据。

当我使用以下查询时——

db.coll.find(
{"id":"1"}, 
{"data": "$user.data_alias","_id": 0,"value":1}
)

现在它正在重新调整数据,比如——

{
"user": [
{
"value": "efg",
},
],
"data": [
"ex"
]
}

但我希望返回值应该像

{
"data": "ex",
"name": "sample"
}

我也尝试过聚合函数

db.colls.aggregate([
{
$match: {
"id": "1"
}
},
{
"$project": {
"_id": 0,
"data": "$user.data_alias"
}
}
]);

两个查询都返回相同的结果。

只将$unwinduser数组和$project转换为预期输出。

db.collection.aggregate([
{
$match: {
name: "sample"
}
},
{
"$unwind": "$user"
},
{
"$project": {
_id: 0,
"name": 1,
"data": "$user.data_alias"
}
}
])

这是Mongo游乐场供您参考。