使用mgo在mongo中删除所有早于使用_id的日期的文档

Posted

技术标签:

【中文标题】使用mgo在mongo中删除所有早于使用_id的日期的文档【英文标题】:Delete all the document older than a date using _id in mongo using mgo 【发布时间】:2016-03-28 12:29:28 【问题描述】:

我在Golangmgo 工作,我想使用_id 值删除集合中早于指定日期的所有文档。

到目前为止,我尝试使用结构 NewObjectIdWithTime 创建一个虚拟 objectId,之后我尝试使用删除文档

collection.Remove(bson.M"_id": bson.M"$lt": objectId)

但我没有得到任何结果,有什么建议吗?

【问题讨论】:

为什么有人要对这样的问题投反对票? 我同意。这个问题很有用,虽然可以改进。 我注意到很多关于 MongoDB 问题的奇怪反对意见。我想这里有些人不喜欢 MongoDB... 【参考方案1】:

我真的不喜欢回答自己,但由于我从 *** 社区获得的唯一帮助是负面评价(没有任何解释),我发布了解决方案:

问题是 mgo 有 RemoveAll 其中删除所有符合条件的元素,所以我的新查询是:collection.RemoveAll(bson.M"_id": bson.M"$lt": objectId)

【讨论】:

以上是关于使用mgo在mongo中删除所有早于使用_id的日期的文档的主要内容,如果未能解决你的问题,请参考以下文章

mgo02_linux7上安装mongo4.0

使用 C# 从 mongo 中删除列

无法使用带有 golang 的 mgo 检索“_id”值

labix.org/mgo 连接池泄漏问题

如何使用连接池将我的 mgo 会话转换为 mongo-go-driver 客户端?

使用 mgo 将数据插入 MongoDB