我有一些代碼需要在我的mongoDB數據庫中更新記錄。所以我首先找到記錄,然後我更新記錄。但是,這些記錄有很多與它們一起存儲的文本數據,所以我不想在返回時檢索整個文檔;只是爲了讓我可以更新它。我認爲,如果我在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
這與jacobra目前所做的功能相當。它是'$ set'運算符,它允許更新記錄的一部分而不用提取整個事物。 – Emily
這個查詢不需要提取文檔就可以轉換爲'$ set'。只是一個更好的語法:) – rubish