我想从一个长度小于3 letters.Is的句子(短语)中找到第一个单词,我能找到吗?请建议一下。
我用过
.map(function(st){return st.split(" ")[0];} 函数,它给我数组format.But中所有的第一个单词,这不是预期的输出。
{“名称”:"VAS层养殖农场私有有限公司“}
{“名称”:"UTTARA肉鸡养殖场私营有限公司“}
{“名称”:"SAI REKHA家禽私人有限公司“}
{“名称”:"RUHITECH营养私人有限公司“}
{“名称”:"SADKAR肉鸡和农业农场私营有限公司“}
{“名称”:"SADAR家禽私人有限公司“}
从这个列表中,我需要输出只打印输出中的单词:("SAI","VAS")。
发布于 2020-01-07 13:27:13
您可以执行聚合查询。
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"
}
}
}
])发布于 2020-01-07 10:39:03
根据我从你的问题中了解到的,你可能在寻找这个:
输入
var arr = [{ "name" : "VAS LAYER BREEDER FARM PRIVATE LIMITED" },
{ "name" : "UTTARA BROILER BREEDER FARM PRIVATE LIMITED" },
{ "name" : "SAI REKHA POULTRY FARMS PRIVATE LIMITED" }
]码
var outputArr = [];
for(let j=0; j<arr.length; j++){
var chars = arr[j].name.split(' ');
for(let i=0; i<chars.length; i++){
if(chars[i].length <= 3){
outputArr.push(chars[i]);
break;
}
};
}输出
outputArr [ 'VAS', 'SAI' ]发布于 2020-01-08 04:13:11
下面的mongo查询将打印少于三个字符的所有单词。
db.test.find().forEach( doc => {
let words = doc.name.split(" ");
for ( let word of words ) {
if ( word.length < 3 ) {
print( word );
break;
}
}
} )查询将打印字符"&“。
如果希望查询打印小于或等于三个字符的单词,请将代码word.length < 3更改为word.length <= 3。这将打印"&“、"SAI”和"VAS“。
如果希望查询只打印字母单词(A到Z和a到z),请将( word.length < 3 )更改为( word.length <= 3 && word.match("^[A-Za-z]+$") )。这将打印"SAI“和"VAS”。
https://stackoverflow.com/questions/59626460
复制相似问题