我收集了一个名为foo的假设.

foo的每个实例都有一个名为lastLookedAt的字段,这是自epoch以来的UNIX时间戳.我希望能够通过MongoDB客户端,将所有现有文档(大约20000个)的时间戳设置为当前时间戳.

最好的处理方法是什么?

推荐答案

不管版本如何,例如,<update>是:

{  $set: { lastLookedAt: Date.now() / 1000 }  }

然而,根据您的MongoDB版本,查询看起来会有所不同.不管版本如何,关键是the empty condition 100 will match any document.在Mongo shell中,或使用任何MongoDB客户端:

$version >= 3.2:

db.foo.updateMany( {}, <update> )
  • {}是条件(空条件匹配任何文档)

3.2 > $version >= 2.2:

db.foo.update( {}, <update>, { multi: true } )
  • {}是条件(空条件匹配任何文档)
  • {multi: true}是"更新多个文档"选项

100:

db.foo.update( {}, <update>, false, true )
  • {}是条件(空条件匹配任何文档)
  • false代表"upsert"参数
  • true表示"多个"参数(更新多个记录)

Mongodb相关问答推荐

会话的Mongo-go驱动程序版本.Copy()

在提供的文档(_Id)之后和之前,是否有一个Mongo操作来获取已排序(和/或过滤)集合中的文档计数?

避免在 MongoDB 聚合框架中使用 ISODate() 以便管道可以是纯 JSON

通过insertId MongoDB获取文档

如何替换mongodb中的动态键?

Mongo C#忽略属性

MongoDB C# 驱动程序 - 如何将 _id 存储为 ObjectId 但映射到字符串 Id 属性?

如何使用 mongoose 从 MongoDb 获取数据?

MongoDB获取聚合查询的executionStats

加载时将 mongo 存储的日期转换回自 Unix 纪元以来的毫秒数?

Express 无法 PUT/DELETE 方法.出了什么问题?

Mongoose Schema vs Mongo Validator

Mongoimport json 文件更新或覆盖..?

Mongo Schema-less集合和 C#

如何在 Rails 中混合使用 mongodb 和传统数据库?

指定在 mongodb .js 脚本中使用哪个数据库

在 MongoDB 上使用 $push 更新数组时避免重复值

Mongo:匹配聚合查询中的日期似乎被忽略了

如何在第一个文档中恢复 MongoDB ChangeStream 而不仅仅是在我开始收听后更改

是否可以使用聚合框架对 MongoDB 中的 2 个字段求和?