是否可以获取数组posts
的长度并将其用于$slice
操作中?
Feed.find(
{ owner: { $in: joinedFeeds } },
{ posts: { $slice: [<length>, fetcher] } }
)
我的目标是每次调用路线时获取一定数量的帖子。所以,我想取数组的最后一块
答案 0 :(得分:0)
这是我收藏的数据:
db.test.insert([
{ "_id" : 1, "item" : "ABC1", "description" : "product 1", colors: [ "blue", "black", "red" ] ,'fav':["1","2"]},
{ "_id" : 2, "item" : "ABC2", "description" : "product 2", colors: [ "purple" ],'fav':[] }
])
请检查以下查询,该查询将基于该记录的“收藏”数组的长度从“颜色”数组中获取元素。
db.test.aggregate([
{
$project: {
finalTotal: {
$let: {
vars: {
numberOfColors: { $cond: { if: { $isArray: "$fav" }, then: { $size: "$fav" }, else: "NA"} }
},
in: { $slice: [ "$colors", "$$numberOfColors" ] }
}
}
}
}
] )
请告诉我这是否有帮助,以及如果您在实施该方法时遇到任何问题。