2017-10-29 5 views
0

나는 MongoDB에 대해 알고 있지만 find() 내에서 OR 로직을 결합하는 법을 모른다.MongoDB : 존재하지 않는 특정 값을 찾는다.

base_currency 필드가 존재하지 않거나 특정 값이있는 모든 트랜잭션을 찾고 싶습니다. 동시에 trade_currency은 특정 값을 가져야합니다. 여기 내가 시도했지만 작동하지 않습니다.

txs = db.transactions.find({ 
    'base_currency': { $or: [{ $exists: true }, { $eq: base_currency }]}, 
    'trade_currency': currency 
}).sort([('datetime_closed', 1)]) 

답변

1
당신은 $를 사용할 수 있습니다

및 $ 또는 다음과 같이 결합 :

db.transactions.find({ 
    "$and": [ 
     {"trade_currency" : currency}, 
     {"$or": [{"base_currency": {$exists: false}}, {"base_currency":base_currency }]}, 
    ] 
    }) 

해당 필드를 확인하려면

당신이 $ 사용할 필요가없는 존재 : 거짓

관련 문제