我试着这样做,但没有奏效.

update := bson.D{{ "$set": bson.D{ "id": "Q" + addr_to_string }, {"$inc": bson.D{ "amount": amount_int } }}}

错误:

mixture of field:value and value elements in struct literal

这是我的初始代码:

update := bson.D{{"$set", bson.D{{"id", "Q" + addr_to_string}, {"amount", amount_int}}}}

我试着增加金额,$Inc..我该怎么做?

推荐答案

bson.D用于描述文档,即属性的有序列表,其中属性是键-值对.属性由bson.E描述,这是一个包含KeyValue字段的简单GO struct .

所以bson.D是一个 struct 片段,所以bson.D的文字必须列出也包含在{}中的 struct 元素.

您的输入可能是这样写的:

update := bson.D{
    {
        Key: "$set",
        Value: bson.D{
            {Key: "id", Value: "Q" + addr_to_string},
        },
    },
    {
        Key: "$inc",
        Value: bson.D{
            {Key: "amount", Value: amount_int},
        },
    },
}

请注意,如果顺序无关紧要(在本例中无关紧要),则使用bson.M(这是一个映射)来定义您的更新文档要容易得多:

update := bson.M{
    "$set": bson.M{
        "id": "Q" + addr_to_string,
    },
    "$inc": bson.M{
        "amount": amount_int,
    },
}

请参阅相关:How to remove the primitive.E composite literal uses unkeyed fields error?

Mongodb相关问答推荐

如何将空值单独分组?

从MongoDB中的嵌套数组中提取找到的值及其索引

Golang mongodb聚合错误:管道阶段规范对象必须包含一个字段

mongoose正在抛出Schema的错误has';t已在next.js中注册

从 Amazon S3(Next.js、Mongodb、Mongoose)删除图像

如何对 MongoDB setWindowFields 中当前文档以外的文档进行操作

MongoDB聚合:如何将查找结果放入嵌套数组中?

mongodb中集合的最大大小是多少

查找对象是否在预保存钩子mongoose中更改

看起来当我执行 fs.writeFile() 时,更改的文件会重新启动 nodemon.怎么让它不重启?

如何在 mongodb 中设置整数的默认值?

MongoDB 批处理操作的最大大小是多少?

如何将 mongoDB 数据导出为 CSV 格式?

使用 mongoimport 将日期(ISODate)导入 MongoDB

如何使用node.js http服务器从mongodb返回大量行?

MongoDB限制内存

mongodb 的计数性能

Java Mongodb 正则表达式查询

Mongoose Select 要从 findOneAndUpdate 返回的字段

MongoDB 查询:字段不存在或具有特定值