【发布时间】:2021-04-16 07:50:47
【问题描述】:
我有一个 mongodb(使用 mongoose)集合(“items”),它的属性中包含一个数组(“images”)。一些示例文档:
[
{
"_id" : ObjectId("543fa67e9672ec37ebe3d026"),
"name" : "Alice",
"images" : [
{ url: "http://images.com/1.jpg" },
{ url: "http://images.com/2.jpg" },
{ url: "http://images.com/3.jpg" },
]
},
{
"_id" : ObjectId("543fa67e9672ec37ebe3d027"),
"name" : "Bob",
"images" : [
{ url: "http://images.com/4.jpg" },
{ url: "http://images.com/5.jpg" },
]
},
]
我想实现一个查询,它与其他文档属性一起返回数组长度(而不是数组内容)。我知道我可以得到数组长度
db.items.aggregate([
{ "$project" : { "_id" : 0, "imagesLength" : { "$size" : "$images" } } }
])
但我需要 imagesLength 值以及 find 返回的文档:
db.items.findMany(
{ ...filter },
{ name: 1, imagesCount: 1 }
);
问题是:我怎样才能得到数组长度以及find 结果?
【问题讨论】:
标签: javascript node.js arrays mongodb mongoose