大众更新如何/插入S. mongoid/mongodb?
我有一个包含数百万个文件的数据库
. 我pacito以下列方式插入:
我需要定期更新属性
在订单中。 使用该方法将它们单独更新它们是非常效力的更新
.
我如何大量更新几个文件 MongoDB?
可以使用下面的代码最佳地描述所需的解决方案。 "fictional":
供你参考 ,
https://coderoad.ru/25550690/
SO 可以是一个类似的问题/答案,但是,老实说,我不遵循答案。
Order
. 我pacito以下列方式插入:
Order.collection.insert/[
{:_id=>BSON::ObjectId/'5471944843687229cdfb0000'/, :status=>"open", :name=> "Benny"},
{:_id=>BSON::ObjectId/'5471944843687229cdfc0000'/, :status=>"open", :name=> "Allan"}
]/
我需要定期更新属性
status
在订单中。 使用该方法将它们单独更新它们是非常效力的更新
update_attribute
.
我如何大量更新几个文件 MongoDB?
可以使用下面的代码最佳地描述所需的解决方案。 "fictional":
# IMPORTANT: The exemplified upsert method does not exist
Order.collection.upsert/[
{:_id=>BSON::ObjectId/'5471944843687229cdfb0000'/, :status=>"closed"},
{:_id=>BSON::ObjectId/'5471944843687229cdfc0000'/, :status=>"some_other_status"}
]/
供你参考 ,
https://coderoad.ru/25550690/
SO 可以是一个类似的问题/答案,但是,老实说,我不遵循答案。
没有找到相关结果
已邀请:
4 个回复
君笑尘
赞同来自:
帅驴
赞同来自:
仅适用于那些巧合的标识符
.
您使用过滤它们
http://two.mongoid.org/docs/qu ... ny_in
any_in . 然后用批量更新它们
http://mongoid.org/en/mongoid/docs/querying.html
.
像这样:
涵秋
赞同来自:
更新
. 更新缓慢发生,因为它必须读取,替换和更改文档。
许多天我被封锁了同样的问题。 我没有找到任何解决方案 stackoverflow, 既不是其他网站。 因此,我写了自己的决定。 也许你会发现它不是很好 "clean", 但它适用于出色的时间结果。
解决方案是再次销毁并创建此文档。
. 破坏 - 它非常快,并使用大规模执行创建新文件 "collection.insert" - 非常快。
喜特乐
赞同来自:
句法
:
将多个更新操作添加到质量操作列表中。 该方法更新现有文档中的某些字段。
使用
方法 Bulk.find//, 指定确定应更新哪些文档的条件。
方法 Bulk.find.update// 更新所有相关文件。 要指定文档的一个更新,请参阅
Bulk.find.updateOne//
.
笔记
:
以表示 upsert: true 对于此操作,使用
Bulk.find.upsert//
. 在
案子
Bulk.find.upsert//, 如果没有文件对应
健康)状况
要求 Bulk.find//, 更新操作只插入一个文档。
我希望它会有所帮助。