[英]How to use `$or` in mongodb
我是MongoDB的新手,使用$or
運算符時遇到了一個問題。
這是我的代碼:
for element in table1.find():
total += 1
result = table2.find_one({'guanZhi' : element['guanZhi'],
'name' : element['name'],
'minZu' : element['minZu'],
'keJu' : element['keJu']})
if result and (element['qiFen'] == result['qiFen'] or
element['qiFen'] == result['qiFenHuo']):
pass
else:
failed += 1
關於(element['qiFen'] == result['qiFen'] or element['qiFen'] == result['qiFenHuo'])
,我想使用$or
,但是我不知道如何編寫代碼。
我這樣更改它:
for element in table1.find({'ji': ""}):
if table2.find_one({'guanZhi' : element['guanZhi'],
'name' : element['name'],
'minZu' : element['minZu'],
'nian' : element['nian'],
'$or' : [{'qiFen' : element['qiFen']}, {'qiFenHuo': element['qiFen']}]}):
match.write(formatElement(element))
else:
no_match.write(formatElement(element))
failed += 1
但是我對此感到困惑,這段代碼看起來還不錯嗎? 我想要:
(guanZhi' : element['guanZhi']) and
('name' : element['name']) and
('minZu' : element['minZu']) and
('keJu': element['keJu']) and
({'qiFen' : element['qiFen']} or {'qiFenHuo': element['qiFen']})
如果我對您的理解正確,我認為您需要同時包含$ AND運算符和$ OR運算符...
據我了解,您想要獲取的是:“您指定的文檔” AND({'qiFen':element ['qiFen']}或'qiFenHuo':element ['qiFen']})
如果是這樣,請嘗試將您的代碼與以下內容組合:
db.inventory.find( {
$and : [
// YOUR CODE HERE,
{ $or : [ { sale : true }, { qty : { $lt : 20 } } ] }
]
} )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.