我有一个包含很多行的集合,例如:
{ "_id" : 1, "state" : "1+" }
我想设置一个cron选项卡,以便删除我的集合中的前N行。
我试过了:
db.history.remove(
{
_id :
{
$lt : db.history.find().sort({_id:1}).limit(1)._id + N
}
,
$atomic : true
}
);
其中N
是要删除的行数,然后我会在我的cron任务中的--eval
内添加此字符串,但此命令不返回任何内容。
我做错了什么?我可以在参数...
中编写一个带N
的服务器端函数
答案 0 :(得分:2)
以下适用于我:
for (var v = db.ninja.find().sort({_id:1}).limit(2);v.hasNext();)
{
db.ninja.remove(v.next());
}
注意:
1)将ninja替换为您的收藏品名称
2)变量v将光标指针保存到已排序的文档(按_id排序)。我给出了一个限制值2,你可以用N
的值替换它