在 MongoDB 查询中查找两个数字范围之间的所有记录

Find All Records Between a Range of Two Numbers in a MongoDB Query

在 MongoDB 中有没有办法获取一系列数字之间的记录?

在我的示例中,我正在查找匹配 common: 1 的记录,并使用伪造的 range() 函数仅获取该范围内的记录。理论上,您可以在范围函数中输入任何数字,它会输出该范围内的记录。

这不是我要问的:

注意:我不是按值查询。我正在根据记录在文件系统中相对于所有其他记录的自然位置进行查询。

用户Collection:

db.users = [{
    _id: 123,
    name: "Bill",
    common: 4
  },
  {
    _id: 456,
    name: "Jeff",
    common: 2
  },
  {
    _id: 789,
    name: "Steve",
    common: 4
  },
  {
    _id: 321,
    name: "Elon",
    common: 3
  },
  {
    _id: 654,
    name: "Larry",
    common: 1
  },
]

不可行的例子:(range() 不是一个真正的函数,只是用来提供一个想法)

users.find({common: 4}).range(0, 2).then((users) => {
  console.log(users)
})

预期结果:(因为公共字段匹配且记录在范围0和2之间)

db.users = [{
    _id: 123,
    name: "Bill",
    common: 4
  },
  {
    _id: 789,
    name: "Steve",
    common: 4
  },
]

这并没有给出确切的预期结果,但整个想法是 select 在两个数字(例如一个范围)之间进行记录。执行此操作的方法是使用 $skip 和 $limit 方法。

users.aggregate([{$skip: 1}, {$limit: 3}, {$match: {common: 4}} ]).then((users) => {
  console.log(users)
})