2016-10-20 8 views
2

私はNode.js + mongodbを使用しています。私のコレクションにはいくつかの文書があり、私のコレクションには私の状態に合った文書があることを知りたい。もちろん、私は単に myModel.find({ myField: someValue })を使用して、何かが来るかどうかを確認することができます。しかし、私はexistsキーワードを提供するSQLのようなソリューションを使用したいですか?助けてください、sqlのようにmongodbの 'exist'関数を正しく使うには?

編集:私の悪い。私はそのことを「パフォーマンス初め」と忘れてしまいます。

答えて

2

、これは便利であると思いますMongoDBのの$existsは実際には、特定の文書があなたのコレクション内に存在するかどうかを調べるには非常にあなたを助けることはありません。これは、たとえば、特定のフィールドが設定されているすべてのドキュメントを提供するために使用されます。

MongoDBには、SQL like existsのネイティブサポートがありません。ただし、使用できるものはmyModel.findOne({ myField: someValue })で、それがヌルかどうかを確認してください。

myModel.findOne({ myField: someValue }, {_id: 1}) 
:あなただけのように、投影を経由してオブジェクトIDをロードするためにMongoDBを伝えることができ、パフォーマンスを向上させるために

1

mongodbには存在するメカニズムがありますが、私は以下のサンプルを示します。

たとえば、私はtomato.consensusフィールドを持つレコードを探しています。これは空であるため、それらを削除または回避できます。私が "tomato.consensus"を探していた場合:ダブリン、私はNullをダブリンに変えてそれに合っています。

私はどんな質問を離れて発射されていない場合

tomato 
----consensus 

db.movieDetails.updateMany({$and: [ 
     {"tomato.consensus": {$exists: true} }, 
     {"tomato.consensus": null} ] }, 
]}) 
関連する問題