gpt4 book ai didi

mongodb - 仅返回 mongo 投影中的数组值

转载 作者:IT老高 更新时间:2023-10-28 13:28:14 25 4
gpt4 key购买 nike

有没有办法只返回 mongodb 投影中的属性值?例如,我有一个文档,该文档具有一个值为数组的属性。我希望查询的返回对象只是数组,而不是 property: [ .. ]。示例:

文档:

db.test.insert({ name: "Andrew",
attributes: [ { title: "Happy"},
{ title: "Sad" }
]
});

查询:

db.test.find({name: "Andrew"},{attributes:1, "_id":0});

返回:

{ "attributes" : [ { "title" : "Happy" }, { "title" : "Sad" } ] }

我希望它返回数组:

[ { title: "Happy"},
{ title: "Sad" }
]

有没有办法做到这一点?谢谢

最佳答案

JSON 不允许顶层是数组,因此普通查询不允许这样做。但是,您可以使用聚合框架执行此操作:

> db.test.remove();
> db.test.insert({ name: "Andrew", attributes: [ { title: "Happy"}, { title: "Sad" } ] });
> foo = db.test.aggregate( { $match: { name: "Andrew" } }, { $unwind: "$attributes" }, { $project: { _id: 0, title: "$attributes.title" } } );
{
"result" : [
{
"title" : "Happy"
},
{
"title" : "Sad"
}
],
"ok" : 1
}
> foo.result
[ { "title" : "Happy" }, { "title" : "Sad" } ]

然而,这并不会像 find 那样创建光标对象。

关于mongodb - 仅返回 mongo 投影中的数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14711816/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com