首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取2018年记录和删除2018年的Mongo db查询

获取2018年记录和删除2018年的Mongo db查询
EN

Stack Overflow用户
提问于 2020-07-11 07:20:11
回答 1查看 290关注 0票数 1

我正在使用下面的查询查找2018年的记录。我的查询是先找到2018年的记录,然后删除2018年的记录。我可以从GUI Robo3t中删除吗?

代码语言:javascript
复制
db.transaction.find().sort({timeStamp:1}).limit(5000);

样本文件:

代码语言:javascript
复制
{ 
    "_id" : 999999001, 
    "eventId" : "LAS071", 
    "eventName" : "YouRefer", 
    "timeStamp" : "2018-06-17T17:12:55.254Z", 
    "eventMethod" : "Reporting", 
    "resourceName" : "AddSTB", 
    "targetType" : "", 
    "resourseUrl" : "", 
    "operationName" : "", 
    "functionStatus" : "", 
    "pageId" : "CloseJobView", 
    "ban" : 144235039, 
    "jobId" : 139980225, 
    "wrid" : 139980225, 
    "jobType" : "MRJ2IX", 
    "Uid" : "kt7201", 
    "techRegion" : "SE", 
    "mgmtReportingFunction" : "N", 
    "recordPublishIndicator" : "Y" 
}

我使用了查询并获得了查找记录:

代码语言:javascript
复制
db.transaction.deleteMany({
  "timeStamp": { $gte: new Date(2018, 0, 1), $lt: new Date(2019, 0, 1) }
})

但我有2018年的大约100000份记录。如何使用上述查询一次删除5K记录?

我试着先在收集中查找,但它说0条记录被取走了。

代码语言:javascript
复制
db.transaction.find({
  "timeStamp": { $gte: new Date(2018, 0, 1), $lt: new Date(2019, 0, 1) }
})

Output: Fetched 0 record(s) in 31ms

但我登记了下面的记录上面有这些时间戳,

代码语言:javascript
复制
"timeStamp" : ISODate("2018-12-31T18:30:03.379Z"),

"timeStamp" : ISODate("2018-12-31T18:30:03.982Z"),
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-11 17:04:05

这是一个shell命令,用于删除2018年的所有文档:

代码语言:javascript
复制
db.transaction.deleteMany({
  "timeStamp": { $gte: new Date(2018, 0, 1), $lt: new Date(2019, 0, 1) }
})

它的工作方式是查询所有记录,timeStamp大于或等于2018年1月1日,timeStamp小于2019年1月1日。

编辑

您的timeStamp字段似乎是一个字符串。尝试使用查找字符串2018的查询:

代码语言:javascript
复制
{ "timeStamp": { $regex: "^2018" } }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62846297

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档