MongoDb将选择与$or和$limit相结合



我使用猫鼬和MongoDb。测试运行将与其所处的当前状态一起保存。我想获得打开或正在运行的测试运行以及最近十个完成的测试运行。

如何实现这一点?

我现在的查询如下所示:

...
models.testRun.find()
  .or([
    { isOpen: true },
    { isRunning: true },
    { $and: [{ isOpen: false }] } // missing statement to select 10 entries
  ])
  .sort({
    updatedAt: "descending"
  })
  .populate(populateQuery)
  .exec((error, testRuns) => {
    console.log(testRuns);
  });

在最后一个$or条目中,我想我可以输入一个$and查询,该查询选择最后十次测试运行。

测试运行的架构如下所示

const testRunSchema = mongoose.Schema({
   isOpen: {
      type: Boolean,
      required: true,
   },
   isRunning: {
      type: Boolean,
      required: true,
   },
   hasError: {
      type: Boolean,
      required: true,
   },
}, { timestamps: true });

...
models.testRun.find()
  .or([
    { isOpen: true },
    { isRunning: true },
    { $and: [{ isOpen: false }] } // missing statement to select 10 entries
  ])
  .sort({
    updatedAt: "descending"
  }
  .{ $limit : 10 })
  .populate(populateQuery)
  .exec((error, testRuns) => {
    console.log(testRuns);
  });

上面的添加应该有效,除非关于猫鼬的特定内容

最新更新