Javascript MongoDb使用$or和$limit组合选择

Javascript MongoDb使用$or和$limit组合选择,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,我使用mongoose和MongoDb。测试运行以其当前状态保存。我想得到开放或运行的测试运行和最后十个完成的测试运行 如何做到这一点 我现在的查询如下所示: 。。。 models.testRun.find() .或([ {isOpen:true}, {isRunning:true}, {$and:[{isOpen:false}]}//缺少用于选择10个条目的语句 ]) .分类({ 更新日期:“下降” }) .populate(populateQuery) .exec((错误,测试运行)=>{

我使用mongoose和MongoDb。测试运行以其当前状态保存。我想得到开放或运行的测试运行和最后十个完成的测试运行

如何做到这一点

我现在的查询如下所示:

。。。
models.testRun.find()
.或([
{isOpen:true},
{isRunning:true},
{$and:[{isOpen:false}]}//缺少用于选择10个条目的语句
])
.分类({
更新日期:“下降”
})
.populate(populateQuery)
.exec((错误,测试运行)=>{
log(测试运行);
});
。。。
models.testRun.find()
.或([
{isOpen:true},
{isRunning:true},
{$and:[{isOpen:false}]}//缺少用于选择10个条目的语句
])
.分类({
更新日期:“下降”
}
({限额:10})
.populate(populateQuery)
.exec((错误,测试运行)=>{
log(测试运行);

});是如果要限制查询的所有值,则此选项有效。但我想打开、运行和最后10次完成运行如果我理解正确,您可以使用$aggregate,也可以直接对游标运行3个查询--{isOpen:true},-->{$limit:10},{isRunning:true}-->{$limit:10}然后通过合并Json的方式合并游标,并将最终结果发送到您需要的任何地方。这似乎是个好主意。开放测试和运行测试不需要受到限制。你能更新你的答案吗?