【问题标题】:MongoDB: Is it possible to limit the results of $lookup to certain fields (as a projection)?MongoDB:是否可以将 $lookup 的结果限制为某些字段(作为投影)?
【发布时间】:2017-12-20 13:33:46
【问题描述】:

这是一些代码,伙计们。

db.collection('bugs').aggregate([{
  $match: finder
}, {
  $sort: { name: 1 }
}, {
  $limit: startrecord + settings.pagination_limit
}, {
  $skip: startrecord
}, {
  $lookup: {
    from: 'users',
    localField: 'user',
    foreignField: '_id',
    as: 'user'
  }
}], {
  collation: collation
}, function(err, docs) {

它完美地工作,这是一个简单的查找。但是,我只需要集合“用户”中的几个字段,并且 $lookup 会返回所有内容。有没有办法将投影应用于查找结果?我只需要三个字段,titlefirstnamelastname

【问题讨论】:

    标签: mongodb aggregation-framework lookup


    【解决方案1】:

    您可以在$lookup 之后添加$project 阶段以限制user 数组中的字段

    db.collection('bugs').aggregate([{
      $project: {
        "user.title": 1,
        "user.firstname": 1,
        "user.lastname": 1
      }
    }]);
    

    【讨论】:

    • 这是我的第一个想法,但后来我必须添加所有字段。我的意思是如果有办法只限制 $lookup 。但显然这是唯一的解决方案。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2021-05-26
    • 2018-04-26
    • 1970-01-01
    • 2014-07-11
    • 1970-01-01
    • 2014-11-24
    • 2018-08-06
    • 2020-12-19
    相关资源
    最近更新 更多