我是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"
}
}
]);
两个查询都返回相同的结果。
只将$unwind
、user
数组和$project
转换为预期输出。
db.collection.aggregate([
{
$match: {
name: "sample"
}
},
{
"$unwind": "$user"
},
{
"$project": {
_id: 0,
"name": 1,
"data": "$user.data_alias"
}
}
])
这是Mongo游乐场供您参考。