【发布时间】:2020-03-10 17:43:17
【问题描述】:
我有一个名为 Book 的 mongo 集合。
{
"_id" : "00000000",
"name" : "Book1",
"similarBooks" : [],
"genre" : ""
}
similarBooks 是 Book 集合中的一个数组,其中包含与 Book1 相似的其他书籍。
我想找到与它有相似书籍的所有书籍。这意味着我需要在我的聚合中匹配similarBooks 数组大小 gt 0。
我正在使用聚合-
db.Book.aggregate([{
"$match": {
"similarBooks": {
"$gt": {
"$size": 0
}
}
}
}
])
但它不起作用。 在匹配条件中使用 $expr 还有另一种选择,
db.Book.aggregate([{ {
$match: {
$expr: {
$gt: [{
$size: "$similarBooks"
}, 0]
}
}
}
])
但是我们不能在创建部分索引时使用 $expr,所以我不能在我的聚合中使用第二个使用 $expr 的选项。有没有其他方法可以运行聚合以找到数组大小 gt 0。
我正在使用 MongoDB shell 版本 v4.2.3。
【问题讨论】:
标签: mongodb