mongodb 管道聚合管道替换值

如果我有文档并且我正在聚合并且我想细分一个字段,例如:

{data: {'date_created': '2011-01-01', 'title': 'abc'}, 'owner': 'Jim'}
{data: {'date_created': '2011-05-01', 'title': 'def'}, 'owner': 'Bob'}
{data: {'date_created': '2011-03-01', 'title': 'ghi'}, 'owner': 'Jim'}
{data: {'date_created': '2011-03-01', 'title': ''}, 'owner': 'Sam'}

并且我想聚合以便我只获取在某个日期之前创建的标题或返回一个空列表,我将如何构建聚合管道?

所以期望的输出是:

{owner: "Jim", titles: ["abc", "def"],
 owner: "Bob", titles: [],
 owner: "Sam", titles: []}

我有一个聚合管道,类似于:

lookup => unwind => 
        {'$match':
            {'$or': [{'data.date_created': {'$lte': requested_date}}, {'data.title': {'$exists': False}}]}}}

但我无法弄清楚如何将创建日期在所需时间之后的数据转换为空白,因此它将与空白标题分组。

塔鲁什·阿罗拉

希望这可以帮助。您可以根据日期进行条件推送,然后从 titles 数组中过滤掉空白项。

db.collection.aggregate([
  {"$group":{
     _id:"$owner",titles:{
         $push: { $cond:[
         { $lte: [ "$data.date_created", "2011-03-01" ]},"$data.title",""
          ]
        }
      }
    }
  },
  {
  $project: {
       _id:0,
       owner : "$_id",
       titles: {
        $filter: {
           input: "$titles",
           as: "titles",
           cond: { $ne: [ "$$titles", "" ] }
        }
      }
    }
  }
])

结果 :

{ "titles" : [ ], "owner" : "Bob" }
{ "titles" : [ "abc", "ghi" ], "owner" : "Jim" }
{ "titles" : [ ], "owner" : "Sam" }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Mongodb聚合管道很慢

来自分类Dev

Mongodb聚合管道项目

来自分类Dev

MongoDB聚合管道问题

来自分类Dev

MongoDB聚合管道python

来自分类Dev

在MongoDB聚合管道中,如何用数组字段替换root?

来自分类Dev

MongoDB聚合管道:计数文档中的字段是否小于值?

来自分类Dev

带循环的MongoDB聚合管道

来自分类Dev

MongoDB聚合管道的新日期

来自分类Dev

MongoDB聚合带有链接对象的管道

来自分类Dev

使用MongoDB聚合管道计数文档

来自分类Dev

MongoDB聚合带有链接对象的管道

来自分类Dev

MongoDb管道聚合$ unwind子子文档

来自分类Dev

MongoDb管道聚合排序子子文档

来自分类Dev

MongoDB的 - 评论Upvoting / Downvoting与聚合管道

来自分类Dev

MongoDB聚合$或$ elemMatch,$ lookr管道中的$ expr

来自分类Dev

mongodb管道聚合组结果放入数组

来自分类Dev

MongoDB使用聚合管道查找和更新

来自分类Dev

“ SelectMany”-在mongodb聚合管道中等效

来自分类Dev

在MongoDB聚合管道中分解数组

来自分类Dev

MongoDB聚合管道输出更改流

来自分类Dev

MongoDB聚合双重查找和管道

来自分类Dev

使用MongoDB聚合管道计数文档

来自分类Dev

具有多个分组的MongoDb聚合管道

来自分类Dev

使用聚合管道基于子文档值创建具有名称的MongoDB字段?

来自分类Dev

即使记录键/ ID不同,也要检查从mongoDB聚合管道返回的相同值

来自分类Dev

如何在聚合管道中将bool转换为字符串并按条件更改值-MongoDB

来自分类Dev

如何使用MongoDB的聚合管道从集合中的两个子文档中返回最小值?

来自分类Dev

如何在mongodb聚合管道内使用Javascript对象?

来自分类Dev

使用MongoDB聚合管道展开和汇总子子文档

Related 相关文章

热门标签

归档