[英]Find All Records Between a Range of Two Numbers in a MongoDB Query
在 MongoDB 中有沒有辦法獲取一系列數字之間的記錄?
在我的示例中,我正在查找匹配common: 1
的記錄,並使用偽造的range()
function 來僅獲取該范圍內的記錄。 理論上,您可以只輸入 function 范圍內的任何數字,該范圍內的記錄將為 output。
這不是我要問的: $gte, $gt, $lte, $lt
注意:我不是基於值進行查詢。 我正在根據文件系統中相對於所有其他記錄的自然記錄 position 進行查詢。
用戶收藏:
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() 不是真正的 function,只是用來提供一個想法)
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) })
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.