首页 > 解决方案 > 在 mongodb 中查找指定大小的句子的第一个单词

问题描述

我想从一个小于 3 个字母的句子(短语)中找到第一个单词。有什么办法可以找到吗?请建议。

我用过

 .map(function(st){return st.split(" ")[0];} 

函数它给了我数组格式的所有第一个单词。但这不是预期的输出。

{“名称”:“VAS LAYER BREED FARM PRIVATE LIMITED”}

{“名称”:“北方肉鸡养殖场私人有限公司”}

{“名称”:“SAI REKHA POULTRY PRIVATE LTD”}

{“名称”:“RUHITECH NUTRITION PRIVATE LTD”}

{“名称”:“萨德卡肉鸡和农业农场私人有限公司”}

{“名称”:“萨达尔家禽私人有限公司”}

从这个列表中,我需要输出仅在输出中打印单词:("SAI","VAS")。

标签: mongodbsearchphrase

解决方案


您可以执行聚合查询。

db.collection.aggregate([
  {
    $project: {
      name: {
        $let: {
          vars: {
            first: {
              $arrayElemAt: [
                {
                  $split: [
                    "$name",
                    " "
                  ]
                },
                0
              ]
            }
          },
          in: {
            $cond: [
              {
                $lte: [
                  {
                    $strLenCP: "$$first"
                  },
                  3
                ]
              },
              "$$first",
              ""
            ]
          }
        }
      }
    }
  },
  {
    $match: {
      name: {
        $ne: ""
      }
    }
  },
  {
    $group: {
      _id: null,
      name: {
        $push: "$name"
      }
    }
  }
])

Mongo游乐场


推荐阅读