考虑“Words”中的以下文档:
[{
_id: 1,
usages: 2,
word: "Name"
}, {
_id: 2,
usages: 1,
word: "Street"
}, {
_id: 3,
usages: 1,
word: "House"
}, {
_id: 4,
usages: 3,
word: "Table"
}, {
_id: 5,
usages: 3,
word: "Bread"
}, {
_id: 6,
usages: 4,
word: "Door"
}]
如何获取使用次数最低或最高的所有记录?最低的应返回 id 2 和 3(及其单词),最高的应返回 id 6 及其单词。
我需要将这些数据聚合成随机数量的最低/最高记录(确切地说是 50 个),因此它需要是一个聚合。
它应该是单个查找,因此使用 $max 或 $min 的另一个查询无法找到最小/最大。
MongoDB版本为3.4.7,Mongoose版本为5.0.0-rc1。不需要 Mongoose 解决方案,因为我可以使用原始查询。 (但是这是首选!)
Example:
Words.aggregate([
{
$match: { _
usages: { WHAT_SHOULD_I_HAVE_HERE }
}
}, {
$sample: {
size: 50
}
}
])
Thanks!