mongodb - 在 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")。
解决方案
您可以执行聚合查询。
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"
}
}
}
])
推荐阅读
- python - 按参数分组和汇总字典列表
- javascript - Angular 使用全局拦截器
- c++ - 迭代std :: string时如何获取没有数字的字符?
- java - 如何在spring boot启动期间呈现多个json文件
- xamarin - 将图像 url 转换为位图
- python - Dask 在读取 csv 时抛出 filenotfounderror / 在 Pandas 中运行良好
- java - 如何从 Java 代码启动 Apache Storm UI?
- php - 为什么范围(0, 0)的断言对于任何单元素数组都返回true,而不管其值如何?
- slurm - 如何动态分配每个节点的核心数?
- file - 从 proc LUA 读取访问冲突打开文件