登录
首页 >  Golang >  Go问答

更新操作文档必须含有 updateOne 时的原子运算符

来源:stackoverflow

时间:2024-03-06 17:09:25 179浏览 收藏

一分耕耘,一分收获!既然都打开这篇《更新操作文档必须含有 updateOne 时的原子运算符》,就坚持看下去,学下去吧!本文主要会给大家讲到等等知识点,如果大家对本文有好的建议或者看到有不足之处,非常欢迎大家积极提出!在后续文章我会继续更新Golang相关的内容,希望对大家都有所帮助!

问题内容

在我的收藏中,只有一份文档。

> db.c20160712.find()
{ "_id" : objectid("57ab909791c3b3a393e9e277"), "dimension_id" : 2, "attribute" : "good", "hour" : "20160712_06", "frequency_count" : 100

我想运行 updateone 将该文档替换为另一个文档。但为什么会出现error: the update操作文档必须包含原子操作符

> db.c20160712.updateOne( { "Attribute" : "good"}, {"Type" : "DVD", "Title" : "Matrix, The", "Released" : 1999, "Genre" : "Action"}, { upsert: true} )
2016-08-10T16:37:57.089-0400 E QUERY    [thread1] Error: the update operation document must contain atomic operators :
DBCollection.prototype.updateOne@src/mongo/shell/crud_api.js:493:1
@(shell):1:1

上述命令中的第二个和第三个参数来自《mongodb 权威指南:处理大数据的完整指南》中的示例... 作者:eelco plugge、david hows、peter membrey、tim hawkins

我的 mongodb 是 3.2。


解决方案


第二个参数的语法错误。请检查the docs。应该是:

db.c20160712.updateOne(
    { "Attribute" : "good" }, 
    { $set: {"Type" : "DVD", "Title" : "Matrix, The", "Released" : 1999, "Genre" : "Action" } },
    { upsert: true }
);

今天关于《更新操作文档必须含有 updateOne 时的原子运算符》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>