我正在try 删除Collection 中的旧记录.

我有一个名为"user_track"的集合,其中包含如下所示格式的数据

db.user_track.find().pretty()
{
        "_id" : ObjectId("50c9afe5765fb0e4fea076ce"),
        "cust_id" : "ddddd",
        "symbol" : "WWWW",
        "access_time" : "Thu Dec 13 2012 05:37:25 GMT-0500 (EST)"
}
{
        "_id" : ObjectId("50c9afe7765fb0e4ffa076ce"),
        "cust_id" : "eeeeeeeeee",
        "symbol" : "WFC",
        "access_time" : "Thu Dec 13 2012 05:37:27 GMT-0500 (EST)"
}
{
        "_id" : ObjectId("522de3ae2191b0e41a7534dd"),
        "cust_id" : "dsdsds",
        "symbol" : "APPLE",
        "access_time" : "Mon Sep 09 2013 11:05:18 GMT-0400 (EDT)"
}

在我的集合user_track中,我只想保留当月的数据(即从2013年9月1日到当天),并想删除不属于当月的其余记录

我试图发出以下命令,但我不确定如何发出该命令以满足我的要求,因为我的日期格式不同.

db.user_track.delete( { 'access_time': {$lte: XXX} })

请建议.

推荐答案

你可以用Javascript日期给出任何日期

db.user_track.remove( { access_time : {"$lt" : new Date(year, month_0_indexed, day)} })

因此,要在2013年9月1日之前删除文档,您的命令应该是

db.user_track.remove( { access_time : {"$lt" : new Date(2013, 8, 1) } })

九月是第9个月,但月份字段的索引为零.所以我们把它设为8.

Mongodb相关问答推荐

执行聚合以消除重复并获得唯一计数

MongoDB:如何从数组中的所有对象中删除属性?

如何使用内部数组中的值更新文档

更快地识别嵌套对象数组中具有重复字段的文档

DB.collection('comments').find() 不工作

对 MongoDB 集合中的对象数组进行排序

如何根据_id删除文档?

更新 MongoDB 中嵌套实体数组中的属性

Spring Boot MongoDB 连接问题

子文档上的mongoose唯一索引

无法连接到mongolab主机

python mongodb正则表达式:忽略大小写

Spring Mongo 条件查询两次相同的字段

Mongoose 中不同集合的相同模式

如何在array.NET驱动程序中的元素属性上创建MongoDB MultiKey索引

如何获取 Mongoid 文档的所有字段名称?

将 MongoDB 数据库复制到本地计算机

使用 MongoDB 的 map/reduce 来分组两个字段

mongodb:upserting:仅在插入文档时设置值

有没有办法防止 MongoDB 向集合名称添加复数形式?