为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 mongo-go-driver 运行 mongo 命令?

如何使用 mongo-go-driver 运行 mongo 命令?

Go
慕妹3242003 2023-05-22 15:59:15
你好 :) 我正在开发一个链接到 mongo DB 的 golang 应用程序(我使用官方驱动程序:)mongo-go这是我的问题,我想执行这个功能db.rmTickets.find().forEach(function(doc) {    doc.created=new Date(doc.created)    doc.updated=new Date(doc.updated)    doc.deadline=new Date(doc.deadline)    doc.dateEstimationDelivery=new Date(doc.dateEstimationDelivery)    doc.dateTransmitDemand=new Date(doc.dateTransmitDemand)    doc.dateTransmitQuotation=new Date(doc.dateTransmitQuotation)    doc.dateValidationQuotation=new Date(doc.dateValidationQuotation)    doc.dateDeliveryCS=new Date(doc.dateDeliveryCS)    db.rmTickets.save(doc)})我在 godoc 上看到 aDatabase.RunCommand()存在,但我不确定如何使用它。如果有人可以提供帮助:) 谢谢
查看完整描述

1 回答

?
倚天杖

TA贡献1828条经验 获得超3个赞

RunCommand是执行一个mongo命令。您打算做的是查找集合中的所有文档,进行更改,然后替换它们。您需要Find()、光标和ReplaceOne()。这是一个类似的代码片段。


if cur, err = collection.Find(ctx, bson.M{"hometown": bson.M{"$exists": 1}}); err != nil {

    t.Fatal(err)

}

var doc bson.M

for cur.Next(ctx) {

    cur.Decode(&doc)

    doc["updated"] = time.Now()

    if result, err = collection.ReplaceOne(ctx, bson.M{"_id": doc["_id"]}, doc); err != nil {

        t.Fatal(err)

    }

    if result.MatchedCount != 1 || result.ModifiedCount != 1 {

        t.Fatal("replace failed, expected 1 but got", result.MatchedCount)

    }

}

我有一个完整的例子TestReplaceLoop()


查看完整回答
反对 回复 2023-05-22
  • 1 回答
  • 0 关注
  • 139 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信