簡體   English   中英

在 MongoDB 查詢中查找兩個數字范圍之間的所有記錄

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM