2017-03-09 41 views
0

財產「結果」我對的NodeJS問題+ mongodb的findandmodify()函數,上週下面的代碼在運行不錯,但現在突然扔了錯誤:MongoDB的findandmodify()無法讀取的不確定

db.collection(collectionName).findAndModify(query || {}, [], {$set: object}, 
    {upset: true}, callback || function() { 
}); 

如果查詢是不明確的代碼運行正常,但查詢參數例如:「_id」:「idofcollection」或「模板」:「TEMPLATENAME」拋出異常:

E:\Working\Projects\iERP\trunk\client\source\node_modules\mongodb\lib\db.js:309 
handleCallback(callback, null, result.result); 
            ^TypeError: Cannot read property 'result' of undefined 
at E:\Working\Projects\iERP\trunk\client\source\node_modules\mongodb\lib\db.js:309:42 
at E:\Working\Projects\iERP\trunk\client\source\node_modules\mongodb-core\lib\connection\pool.js:436:18 
at doNTCallback0 (node.js:419:9) 
at process._tickCallback (node.js:348:13) 

請解釋我的方式來解決這個問題問題?

回答

1

我會用$or代替:

db.collection(collectionName).findAndModify({ $or: [ query, { example: 10 } ] }, {$set: object}, function(){ 
    }); 

兩件事情:

  1. 我不知道什麼callback是在你的代碼。通常回撥是an anonymous function
  2. query應該是這個樣子{ price: 5 }

這裏是$or一些文檔:https://docs.mongodb.com/manual/reference/operator/query/or/

希望這有助於!

+0

謝謝,但回調是抽象函數,像你寫的查詢,我已經改變了你的sugguest的代碼,但不好。添加信息:其他集合調用函數findandmodify都可以,只有這個集合拋出錯誤:( –