您好,我正在尝试使用 mongolite
包更新 mongodb 中的集合,但我无法弄清楚为什么我的查询失败(谷歌没有帮助)。
我正尝试运行更新命令,但我收到错误消息,提示时间戳无效:
files$update(
query = "{\"FileId\" : \"F0FFFBDA14E1D49547C24CD5150\" }",
update = "{ \"$set\" : {\"Contract\" : \"1\"},
\"$currentDate\" : {\"Updated\" : { \"$type\" : \"timestamp\" } } }")
Error: Invalid input string timestamp, looking for 6
这是我要更新的对象:
{ "_id" : ObjectId("59d3fc93ec2d602b7967f4a7"),
"Client" : "Someone",
"FileId" : "F0FFFBDA14E1D49547C24CD5150"
}
我非常确定我的查询是正确的,我能够在 mongo
shell 客户端中执行它。
最佳答案
使用 mongolite 的文档我发现了如何添加我自己的时间戳,这恰好是现在的时间。
基本上,我没有使用 $currentDate
运算符,而是使用了 $set
并使用了一点 R 代码,我想出了我应该设置什么值 Updated
字段:
sub(
"NOW",
format(Sys.time(), "%Y-%m-%dT%H:%M:%SZ", 'EST'),
'"$set" : {"Updated" : "NOW"}'
)
参见 documentation了解更多详情。
关于r - 这是 mongolite 包中的错误吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46555723/