Mongodb 按嵌入数组上的最后一个元素筛选查找

Mongodb 按嵌入数组上的最后一个元素筛选查找,mongodb,Mongodb,在MongoDB中,如何执行由应用于嵌入数组最后一个元素的谓词过滤的搜索 我知道如果我想在第一次做,我可以这样做: db.inventory.find( { 'instock.0.qty': { $lte: 20 } } ) 如图纸所示 当我不知道嵌入数组的确切大小时,如何编写查看最后一个元素的模拟查询?我们可以使用$arrayElemAt并将-1作为第二个参数传递给它,以获取数组中的最后一个元素 像这样的 db.collection.find({ $expr: { $gt: [

在MongoDB中,如何执行由应用于嵌入数组最后一个元素的谓词过滤的搜索

我知道如果我想在第一次做,我可以这样做:

db.inventory.find( { 'instock.0.qty': { $lte: 20 } } )
如图纸所示

当我不知道嵌入数组的确切大小时,如何编写查看最后一个元素的模拟查询?

我们可以使用$arrayElemAt并将-1作为第二个参数传递给它,以获取数组中的最后一个元素

像这样的

db.collection.find({
  $expr: {
    $gt: [
      {
        $arrayElemAt: ["$instock.qty", -1]
      },
      10
    ]
  }
})
你可以在这里测试

希望能有帮助