2015-08-15 116 views
4

在LokiJS我嘗試一個非常簡單的查詢(我假設是AND):與LokiJS:簡單的查找查詢返回錯誤結果

recsCol.insert({format:format, cardId:id, recCardId:key, amount:item[key]}); 

一點不插入一些數據之後

var dbRes = recsCol.find({'format':format, 'cardId':-1}); 

包含-1的cardId。

該查詢仍然會產生結果。這是預期的行爲?如果是這樣,我怎麼才能使字段完全匹配,以便在這種情況下我不會得到結果?

回答

6

你可以做一個並在LokiJS,沒有問題:

var dbRes = recsCol.find({'$and': [{'format':format}, {'cardId':-1}]}); 

我建議使用找到一次性查詢。如果查詢在可能更改的結果集上多次出現,那麼肯定使用視圖。

+0

這樣做會做同樣的事情。每個字段需要位於其自己的查詢對象中,以使其成爲AND。 –

+0

@AlexKinnee你是對的,對我來說有些疏忽,因爲我看到了我寫的LokiJS!我更新了答案,謝謝。 –

+1

@AlexKinnee我也提高了你的答案,因爲它實際上是正確的,但我的一個被標記爲正確的,所以我不想讓人誤解。 –

4

默認情況下,查詢對象中的所有字段都被視爲OR。要使其成爲AND,您需要將查詢語法更改爲以下內容:

recsCol.find({ 
    $and: [ 
     {'format':format}, 
     {'cardId':-1} 
    ] 
});