是否可以根据BSON日期的属性在Mongo中进行条件删除?我正在尝试这样做:
db.events.remove( { StartTime.getDay() : { $ne : "1" } } )
我知道我可以将这一天复制到一个新属性中,但我有超过700万条记录,如果可能的话,我更愿意评估这个“在线”。我感谢您抽出宝贵时间来帮助我(请注意这是我使用mongo的第一天)。如示例文档所示:
> db.events.findOne()
{
..
"_id" : ObjectId("53f4fceeec3ef1e91d997d8d"),
"StartTime" : ISODate("2014-07-22T04:59:52Z")
..
}
丹
答案 0 :(得分:2)
有$where
查询表单,可以对JavaScript进行评估。它是一种有效的查询形式,但自然不能使用索引,因为评估是在JavaScript代码中。
db.collection.remove(function() { return this.StartTime.getDay() != 1 });
这是$where
的缩写形式,其形式较长,可与其他运营商合并:
db.collection.remove({ "$where": function() { return this.StartTime.getDay() != 1 } });
对于shell,它可以只是一个代码对象,对于其他语言,它通常是一个字符串。