比賽

2017-10-28 230 views
-1

我有數字陣列[111, 444, 777]比賽

我想看看這兩個文件裏面

{ 
    _id: 1, 
    lookHere: {rangeLow: 333, rangeHigh: 555} 
}, 
{ 
_id: 2, 
    lookHere: {rangeLow: 222, rangeHigh: 333} 
} 

我想只寫一個返回查詢第一個文件,因爲我的數組數組包括444之間的333和555.

是否有一個查詢,可以實現這種結果在mongo/mongoose?

回答

1

你想要一個$or查詢。您可以.map()源數組的參數爲$or

var inputs = [111, 444, 777]; 

collection.find({ 
    "$or": inputs.map(n => ({ 
    "lookHere.rangeLow": { "$lt": n }, 
    "lookHere.rangeHigh": { "$gt": n } 
    })) 
}) 

,基本上是想看看是否低值小於和高比每個電流元件的數量,並返回爲真時,任何匹配這兩個條件。

請注意,除非另有說明,否則所有MongoDB查詢參數都是隱式AND條件。