我正在使用下面的查询查找2018年的记录。我的查询是先找到2018年的记录,然后删除2018年的记录。我可以从GUI Robo3t中删除吗?
db.transaction.find().sort({timeStamp:1}).limit(5000);样本文件:
{
"_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"
}我使用了查询并获得了查找记录:
db.transaction.deleteMany({
"timeStamp": { $gte: new Date(2018, 0, 1), $lt: new Date(2019, 0, 1) }
})但我有2018年的大约100000份记录。如何使用上述查询一次删除5K记录?
我试着先在收集中查找,但它说0条记录被取走了。
db.transaction.find({
"timeStamp": { $gte: new Date(2018, 0, 1), $lt: new Date(2019, 0, 1) }
})
Output: Fetched 0 record(s) in 31ms但我登记了下面的记录上面有这些时间戳,
"timeStamp" : ISODate("2018-12-31T18:30:03.379Z"),
"timeStamp" : ISODate("2018-12-31T18:30:03.982Z"),发布于 2020-07-11 17:04:05
这是一个shell命令,用于删除2018年的所有文档:
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的查询:
{ "timeStamp": { $regex: "^2018" } }https://stackoverflow.com/questions/62846297
复制相似问题