2012-07-19 1 views
5

存在しない場合、私は、この(これは非常に単純化されている)のような文書を持っている既存の文書にフィールドを挿入しますそれが存在しなければ14歳になる。MongoDBはすでに

どうすればいいですか?

答えて

6

$existsoperatorを試してみてください:あなたはどこの年齢にnull値を検索する場合

$this->mongolib->update('people', array('age' => array('$exists' => false)), array('$set' => array('age' => 14)), array('upsert' => true, 'multiple' => true)); 
+0

あなたが同じことを達成していないでしょうか? – golja

+0

'$ exists'は' {age:null} 'と一致しませんが、ageがnullの場合は年齢フィールドのないドキュメントと一致します。私は、$ exist演算子がより良いインテントの指標であることを発見しました。 – MrKurt

+0

が働いた。ありがとう! – tpae

0

私は考えることができるラウンドアバウトの方法を持っています。通常の更新コマンドを使用することをお勧めしますが、選択基準に正規表現条件を追加して、 'age'属性に設定された値(または数値)を持たない文書のみを照合してください。

関連する問題