【问题标题】:Query condition on populated element possible?可以查询填充元素的条件吗?
【发布时间】:2017-04-03 21:37:23
【问题描述】:

我可以对填充字段执行 where 条件吗?

我可以做一个find().where('p').equals(q._id) 但不是find().populate('p', 'element').where('p.element').equals(q.element)

或者这种类型的查询的语法是什么?

或者在猫鼬中不可能吗?

【问题讨论】:

    标签: mongoose mongoose-populate


    【解决方案1】:

    您应该能够按以下方式进行填充:

    Story
    .find(...)
    .populate({
      path: 'fans',
      match: { age: { $gte: 21 }},
      select: 'name -_id',
      options: { limit: 5 }
    })
    .exec()
    

    上面的例子直接取自本页的 mongoose 文档: http://mongoosejs.com/docs/populate.html,搜索标题查询条件及其他选项

    【讨论】:

    • 那完全不同。这只会限制填充的项目。所以在这个例子中,你得到了所有的故事,但只填充了一些粉丝。我需要的是,我只获得特定粉丝在填充文档中的故事。
    • 目前唯一让它工作的方法是查找风扇的_id,然后使用这个_id作为没有人口的查询条件。丑陋的编码工作。如果有一些内置的解决方案会很好......
    • 对不起,我完全误解了你想要的东西。是的,我认为您拥有的解决方案是真正做到这一点的唯一方法:/
    猜你喜欢
    • 1970-01-01
    • 2010-11-07
    • 2023-03-25
    • 1970-01-01
    • 2014-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-25
    相关资源
    最近更新 更多