这是mongolite包装中的一个错误吗?

时间:2017-10-04 01:32:15

标签: r mongodb mongolite

您好我正在使用mongolite软件包更新mongodb中的集合,但我无法弄清楚为什么我的查询失败(谷歌没有帮助)。

我要运行update命令,但是我收到错误,说时间戳无效:

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

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

这是我试图改写的对象:

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

我非常确定我的查询是正确的我能够在mongo shell客户端中执行它。

1 个答案:

答案 0 :(得分:1)

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

基本上我没有使用$currentDate运算符,而是使用了$set并使用了一小段R代码,我想出了将Updated字段设置为:

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

有关详细信息,请参阅documentation