sql >> データベース >  >> NoSQL >> MongoDB

プレーンオブジェクトをマングースドキュメントにキャストします

    自分の回答を投稿して、これが開いたままにならないようにする:

    バージョン4モデル(2015-03-25に安定してリリース)は、hydrate() 方法。 ダーティとしてマークされるフィールドはありません 最初は、save()の呼び出しを意味します フィールドが変更されるまで何もしません。

    https://github.com/LearnBoost/mongoose /blob/41ea6010c4a84716aec7a5798c7c35ef21aa294f/lib/model.js#L1639-1657

    これは、データベースからロードされたプレーンJSオブジェクトをマングースドキュメントに変換するために使用されることを目的としていることに注意することが非常に重要です。 RESTサービスなどからドキュメントを受信する場合は、findById()を使用する必要があります およびupdate()

    危険な生活を送っている人のために:

    データベースに触れずに既存のドキュメントを本当に更新したい場合は、hydrate()を呼び出すことができると思います。 、フィールドをダーティとしてマークしてから、save()を呼び出します 。これは、doc.isNew = false;を設定する方法とそれほど違いはありません。 私が最初の質問で提案したように。しかし、Valeri(マングースチームから)はこれをしないことを提案しました。検証エラーやその他のエッジケースの問題を引き起こす可能性があり、一般的には適切な方法ではありません。 findByIdは非常に高速であり、ボトルネックにはなりません。



    1. 集約フレームワークでオブジェクトを$unwindします

    2. mongod--dbpathを設定する方法

    3. 整数フィールドでのRailsMongoid正規表現

    4. サブフィールドでのMongoクエリ