2016-05-19 1 views
0

驚いをスローこれは(まあ、私はそれを見つけることができません)まだ尋ねたが、私は、クエリを使用しています言うことができますされていません。

db.find('this.CustomerPurchaseOrderNumber.indexOf("value") !== -1') 

3 /私のデータの4Sは、文字列としてCustomerPurchaseOrderNumberがありますが、それらのいくつかは、このエラーが発生し、ヌルとしてそれを持っている:

error: { 
    "$err" : "TypeError: Cannot call method 'indexOf' of null near 'value\") !== -1' ", 
    "code" : 16722 
} 
  1. 私が使用しなければならないクエリとして「javascript関数」
  2. 私は全くありませんデータの制御

私の質問は、「throwIsFalse」フラグを渡すことができます。つまり、その関数がエラーをスローすると、その行は一致しません。

みんなありがとう

答えて

1

あなたはより効率的にそれを行うことができますように、そのため$whereクエリを使用すべきではないとして(とあなたがヒットしている問題なし):

db.find({CustomerPurchaseOrderNumber: "value"}) 

しかし、あなたの場合何らかの理由で$whereクエリを使用する必要があり、あなたはそれにindexOfを呼び出す前CustomerPurchaseOrderNumberが実際に存在することを確認する必要があります:

db.find('this.CustomerPurchaseOrderNumber && this.CustomerPurchaseOrderNumber.indexOf("value") !== -1') 
+0

あなたは効率について100%正しいですが、私の問題はクエリがoDataから切り出されているため、それらのオブジェクトを簡単に作成する方法がないことです。 –

+0

@RoderickObrist喜んで助けてください。しかし、何らかのスケールでパフォーマンスがひどくなるため、すべてのものに対して '$ where'クエリを使用することに基づくプロダクションシステムはないことに留意してください。 – JohnnyHK

関連する問題