mongoDB DBのレコードを更新する必要があるコードがあります。だから私はまずレコードを見つけて、レコードを更新します。しかし、レコードには多くのテキストデータが格納されているため、ドキュメントを取得するときにドキュメント全体を取得する必要はありません。私はそれを更新することができます。 mongoidで "only(...)"メソッドを使用すると、その属性だけが返されると思いました。これらのクエリは非常に遅く実行されているように見えるので、達成していると思ったことを達成しているかどうかはわかりませんでした。MongoDB/mongoid update_attributesメソッドが遅いですか?
d = Document.only(:title).find(title) # using 'title' as key in mongoDB
d.update_attributes({ author: "author_name" })
この目的のクエリを高速に実行する方法はありますか?
答えに追加する、 'Document.where(title:title).update_all(著者:"著者 ")'。しかし、これはバリデーションをスキップします。 – rubish
これは、ジャコブラが現在行っていることと機能的に同等です。これは '$ set'演算子で、レコード全体をフェッチせずにレコードの一部を更新することができます。 – Emily
このクエリは、ドキュメントを取得せずに '$ set'に変換されます。ちょうど良い構文:) – rubish