通过mongoose查询的到一个数组,我想通过这个数组,一直找,直到找到_id等于指定值的时候才开始选取元素,在不等于之前的所有元素抛弃掉。
如果用C#实现那就是
var all; // 假定这个是一个有数据的list
var id; //指定值
all.SkipWhile( a => a._Id != id).Take(10).ToList();
如果用mongoose 来实现类似的功能怎么写,api中有一个skip函数,但是参数是Number, 无法跟每一个元素本身相联系,用where 到时可以勉强的实现一下
var flag = false; // 标记
var id; //指定值
db.find().where(function () {
if (flag) {return ture;}
else {
if (this._Id === id) {
flag = true;
}
return false;
}
})
有没有更好的更简洁的方法
使用mongo的$elemMatch 操作符
http://docs.mongodb.org/manual/reference/operator/query/elemMatch/