【问题标题】:how to find all documents until a condition met in mongodb如何查找所有文档,直到在 mongodb 中满足条件
【发布时间】:2018-04-02 09:44:10
【问题描述】:

我想查找()集合中从跳过值到条件限制值的任何文档,而不是所有文档。例如,我想获取所有人,直到找到第五个黑头发的人。不只是五个黑头发的人。我怎样才能在mongodb中做到这一点? 谢谢!

【问题讨论】:

  • 那么你去 5,10,15,20,25...等,你想检查第 5、10、15...等文件中的人是否有黑头发?
  • 不,我只想得到所有人,直到我得到第五个黑头发人。因此,我的新收藏中会有很多非黑发人加上五个黑发人。
  • 只需迭代光标,直到找到所需的数字。这是一个简单的循环,当匹配数等于 find 时,您只需 break

标签: mongodb find


【解决方案1】:

获取开始/结束 ID,然后是该范围的文档。假设您想要黑头发的第一和第五人之间的连续人:

var start = db.persons.find({"hair": "black"}).sort({_id:1}).limit(1).toArray()[0]._id;
var end = db.persons.find({"hair": "black"}).sort({_id:1}).skip(4).limit(1).toArray()[0]._id;
db.persons.find({"_id": {$gte: start, $lte: end }})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-23
    • 1970-01-01
    • 2018-07-06
    • 1970-01-01
    • 1970-01-01
    • 2019-11-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多