我有这个 Mongoose 架构:
var postSchema = mongoose.Schema({
postId: {
type: Number,
unique: true
},
upvotes: [
{
type: Number,
unique: true
}
]
});
获取 upvotes 数组长度的最佳查询是什么?我不认为我需要使用聚合,因为我只想查询一个模型,只需要给定模型的 upvotes 数组的长度。
真的很难在网上找到这些信息 - 我搜索的所有内容都提到了我认为不需要的聚合方法。
另外,作为旁注,upvotes 数组的唯一架构属性不起作用,也许我做错了。
最佳答案
find
结果只能包含来自文档本身的内容1,而 aggregate
可以投影从文档内容派生的新值 (像数组的长度)。这就是为什么你需要为此使用 aggregate
,即使你只得到一个文档。
Post.aggregate([{$match: {postId: 5}}, {$project: {upvotes: {$size: '$upvotes'}}}])
1唯一的异常(exception)是 $meta
投影运算符来投影 $text
查询结果的分数。
关于node.js - Mongoose - 获取模型中数组的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33447670/