2

嗨,我很想使用mongolite包更新 mongodb 中的集合,但我不知道为什么我的查询失败(谷歌没有帮助)。

我正在尝试运行更新命令,但我收到错误消息说时间戳无效:

files$update(
  query  = "{\"FileId\" : \"F0FFFBDA14E1D49547C24CD5150\" }",
  update = "{ \"$set\" : {\"Contract\" : \"1\"},  
              \"$currentDate\" : {\"Updated\" : { \"$type\" : \"timestamp\" } }  }")

错误:输入字符串时间戳无效,正在寻找 6

这是我要更新的对象:

{ "_id" : ObjectId("59d3fc93ec2d602b7967f4a7"), 
    "Client" : "Someone", 
    "FileId" : "F0FFFBDA14E1D49547C24CD5150"
}

我很确定我的查询是正确的,我能够在mongoshell 客户端中执行它。

4

1 回答 1

1

使用 mongolite 的文档,我发现了如何添加我自己的时间戳,这恰好是现在的时间。

基本上,$currentDate我没有使用运算符$set,而是使用了一点 R 代码,我弄清楚了我应该将Updated字段设置为什么值:

sub(
  "NOW",
  format(Sys.time(), "%Y-%m-%dT%H:%M:%SZ", 'EST'),
  '"$set" : {"Updated" : "NOW"}'
)

有关更多详细信息,请参阅文档

于 2017-10-04T13:25:35.907 回答