每月,我想从我的一个集合中删除所有超过1个月的文档。集合中的示例文档如下所示:
{
_id: ObjectId("56e75f1ce851695805ead8ae"),
createDate: ISODate("2016-03-15T01:02:20.821Z"),
foo: "bar"
}
我希望自动安排此任务的执行,这样它就不需要人工输入(例如,作为cron作业),因此我希望它具有尽可能少的逻辑。
如何查询createDate早于1个月的文档?我曾想过尝试这样的事情:
db.col.find({createDate: {$lt: ISODate(ISODate().getTime() - 1000*3600*24*30)}});
。。。其中,我创建了一个当前时间减去1个月毫秒的新ISODate,但它不会返回任何数据。这也有点难看,即使它确实有用。我将如何实现这一点?
嗯,我想出来了。看来我的语法有点错误。。。老实说,我并不完全确定这个正确的语法是如何工作的,但它满足了我的需要。
db.col.find({createDate: {$lt: new Date((new Date())-1000*3600*24*30)}});
您可以创建TTS索引以删除超过30天的数据。30天后它会自动删除数据。
db.col.create索引({"createDate": 1},{exireAfter秒: 2592000})
问题内容: 我想从Oracle表的DOB(出生日期)字段中计算当前的人的年龄。 DOB字段的数据类型为varchar,其日期以“ DD-MON-YY”格式存储。 当我从日期算起一个人的当前年龄时,查询将返回负数。另外,我观察到,如果日期为13到49年,则结果为负。 例子 查询执行以供参考 任何帮助表示赞赏! 问题答案: 为了解决21世纪的问题,只需稍微修改@the_silk的答案即可: 请注意,尽
主要内容:find() 方法,pretty() 方法,findOne() 方法,条件查询,AND条件语句,OR 条件语句,AND 和 OR 联合使用前面我们介绍了怎么将文档插入到集合中,本节我们来介绍一下如何从集合中查询指定的文档。 find() 方法 想要查询集合中的文档,可以使用 MongoDB 中的 find() 方法,find() 方法可以将查询结果以非结构化的方式展示出来,其语法格式如下: db.collection_name.find(query, projection) 语法说明如
这是我的代码,从这里采取:计算年龄在JavaScript 它如何继续与月和日,如: 用户生日是:2010/04/29 结果应该是这样的:2岁4个月5天。 演示:http://jsfiddle.net/jFxb5/
问题内容: 我在集合中将值存储为java.util.Date(),但是当我查询以获取两个特定日期之间的值时,最终得到的值超出了范围。这是我的代码: 插入 查询 当我在和之间查询时(基本上是fromDate = toDate),我得到的日期绝对不可能的对象。我在这里想念什么? 问题答案: 您正在执行的操作是仅在键覆盖中使用丢失运算符进行查询。您想要的是:
问题内容: 我有一个InnoDB表和一个列索引,就像这样 我只想了解这些查询背后的真实情况: 和 据我了解,第一个MySQL将使用列寿命索引,而第二个则无法使用。是吗?哪个对性能更好? 问题答案: 这两个查询都将使用索引。 查询A将转换为: 查询B将转换为 因此查询A将使用OR进行3个测试。 查询B将使用AND进行2个测试。 查询B更快。 通常,使用的查询比使用的查询要快。 另外,查询B执行的测试
此问题是由打字错误或无法再复制的问题引起的。虽然这里可能有类似的问题,但这一问题的解决方式不太可能对未来的读者有所帮助。 我正在尝试向mongoDB查询“日期”在两个日期之间的文档。示例数据是: 我的Java代码是: 但游标对象没有结果。 查询对象如下所示: 我怀疑问题是DB中的日期表示。对此有什么建议吗?