Javascript 是否基于BSON date属性删除?
是否可以基于BSON日期的属性在Mongo中执行条件删除?我正在尝试这样做:Javascript 是否基于BSON date属性删除?,javascript,mongodb,mongodb-query,Javascript,Mongodb,Mongodb Query,是否可以基于BSON日期的属性在Mongo中执行条件删除?我正在尝试这样做: db.events.remove( { StartTime.getDay() : { $ne : "1" } } ) 我知道我可以将一天复制到一个新属性中,但我有超过700万条记录,如果可能的话,我更愿意评估这个“在线”。感谢您抽出时间来帮助我(请注意,这是我使用mongo的第一天)。示例文档如下所示: > db.events.findOne() { .. "_id" : ObjectId("53f4fceee
db.events.remove( { StartTime.getDay() : { $ne : "1" } } )
我知道我可以将一天复制到一个新属性中,但我有超过700万条记录,如果可能的话,我更愿意评估这个“在线”。感谢您抽出时间来帮助我(请注意,这是我使用mongo的第一天)。示例文档如下所示:
> db.events.findOne()
{
..
"_id" : ObjectId("53f4fceeec3ef1e91d997d8d"),
"StartTime" : ISODate("2014-07-22T04:59:52Z")
..
}
Dan有一个查询表单,它对JavaScript求值进行操作。它是一种有效的查询形式,但自然不能使用索引,因为计算是在JavaScript代码中进行的
db.collection.remove(函数(){返回this.StartTime.getDay()!=1});
这是$的简写形式,其中
的形式较长,可与其他运算符组合:
db.collection.remove({“$where”:function(){返回this.StartTime.getDay()!=1});
对于shell,它可以只是一个代码对象,对于其他语言,它通常是一个字符串。谢谢您的帮助,尼尔。我实际上遇到了类似的问题。我无法在this.StartTime.getDay()上选择。您的示例仅在此.StartTime上选择。我基本上想删除任何不是一个月的第一天的文档。以下是我尝试做的要点:@dps这是一个打字错误。我的意思是调用函数,这是关键。您可以通过JavaScript评估来实现这一点,因为在聚合框架之外没有内置的操作符。当然不会删除匹配的文件Neil Lunn谢谢你先生。这起作用了。remove({$where:function(){return(this.StartTime.getDay()==this.StartTime.getDay())});