基于BSON日期属性删除?

时间:2014-08-21 02:27:02

标签: javascript mongodb mongodb-query

是否可以根据BSON日期的属性在Mongo中进行条件删除?我正在尝试这样做:

db.events.remove( { StartTime.getDay() : { $ne : "1" } } )

我知道我可以将这一天复制到一个新属性中,但我有超过700万条记录,如果可能的话,我更愿意评估这个“在线”。我感谢您抽出宝贵时间来帮助我(请注意这是我使用mongo的第一天)。如示例文档所示:

> db.events.findOne()
{
..
"_id" : ObjectId("53f4fceeec3ef1e91d997d8d"),
"StartTime" : ISODate("2014-07-22T04:59:52Z") 
..
}

1 个答案:

答案 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,它可以只是一个代码对象,对于其他语言,它通常是一个字符串。