在聚合框架mongodb中使用$ unwind和$ text

特哈斯·马哈詹(Tejas Mahajan)

我在mongo db中有一个称为页面的集合。在这种情况下,我有一系列称为文章的文档。在该数组中的每个文档中,我都说了文章编号和文章内容。

我想做的是放开文章,然后使用$ text在文章Content中搜索单词。但是$ text必须处于开发的第一阶段。

如果我在流水线的第一阶段执行但不放松,现在会发生的情况是,在第一次搜索文本时,它将返回该文档的所有剩余文章,而不管它是否包含文本。

注意:Pages集合包含很多文档。

样品采集 :

{
   pageNo: 1,
   articles:[{
          articleNo:1,
          articleContent:"cat dog cat dog"
        },{
          articleNo:2,
          articleContent:" Some random text"
        }]
},
{
   pageNo: 2,
   articles:[{
          articleNo:1,
          articleContent:"Some random text"
        },{
          articleNo:2,
          articleContent:"cat dog cat"
        }]
}

预期的输出:说我搜索“猫”

{
   pageNo:1,
    articles:[{
          articleNo:1,
          articleContent:"cat dog cat dog"
        }]
},
{
  pageNo:2,
   articles:[{
          articleNo:2,
          articleContent:"cat dog cat" 
        }]
}
汤姆

以下答案将返回您想要的结果。第一个$matchcattext索引的帮助下仅用于过滤文档,而根本不过滤文档如果您不使用此阶段,则结果将相同且正确,但可能会更慢。

db.pages.aggregate([
     {
         $match: {
             $text: {
                 $search: "cat"
             }
         } 
     },
     {
         $unwind: '$articles'
     },
     {
         $match: {
             'articles.articleContent': /cat/
         }
     },
     {
         $group: {
             _id: {
                 _id: '$_id',
                 pageNo: '$pageNo'
             },
             articles: {
                 $push: '$articles'
             }
         }
     },
     {
         $project: {
             _id: '$_id._id',
             pageNo: '$_id.pageNo',
             articles: 1
         }
     }
])

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Mongodb聚合$ unwind然后计数

来自分类Dev

MongoDb聚合框架-可以在$ push中使用$ sum结果吗?

来自分类Dev

Mongodb和聚合框架。数组的总和与文档的总和

来自分类Dev

如何在单个mongodb查询中使用求和,乘法,除法和分组聚合

来自分类Dev

SailsJS和MongoDB聚合框架与自定义查询的麻烦

来自分类Dev

MongoDb管道聚合$ unwind子子文档

来自分类Dev

MongoDB,TimeSeries和聚合框架

来自分类Dev

$ unwind与组和计数

来自分类Dev

在MongDB聚合中使用$ nin和$ sample

来自分类Dev

Mongodb 3.2和3.0 $ unwind聚合

来自分类Dev

mongoDB聚合框架中的组和项目组合

来自分类Dev

MongoDB $ unwind和性能

来自分类Dev

何时在Django中使用匿名和聚合?

来自分类Dev

在Mongodb中使用聚合,查找和管道进行查询

来自分类Dev

具有$ or和$ text的MongoDB聚合异常行为

来自分类Dev

MongoDB,Flask与$ unwind查询聚合

来自分类Dev

MongoDB聚合查询优化:$ match,$ lookup和double $ unwind

来自分类Dev

如何使用$ unwind保持文档聚合

来自分类Dev

Mongodb和聚合框架。数组的总和与文档的总和

来自分类Dev

在MongDB聚合中使用$ nin和$ sample

来自分类Dev

Mongodb 3.2和3.0 $ unwind聚合

来自分类Dev

如何使用mongodb和c#在子元素中使用聚合函数?

来自分类Dev

选择不使用$ unwind(猫鼬聚合)

来自分类Dev

在mongodb中的多个嵌套数组中使用unwind

来自分类Dev

在 mongodb 中使用多个 $lookup 和聚合

来自分类Dev

使用 MongoDB 中的聚合框架进行分组和计数

来自分类Dev

在 WHERE 子句和 OR 中使用聚合

来自分类Dev

Mongodb $unwind 聚合不起作用

来自分类Dev

在 UPDATE 中使用 CTE 和聚合函数

Related 相关文章

热门标签

归档