gpt4 book ai didi

javascript - mongoDB - 计算2个字符串中的常见单词

转载 作者:行者123 更新时间:2023-12-03 07:54:54 25 4
gpt4 key购买 nike

假设我在 MongoDB 中有一些文档,其中包含这些信息:

{
text: "this is the first this is"
content: "this is this is"
total: 0
}

我想计算“文本”中的每个单词在“内容”中出现的次数,将所有计数结果相加并放入“总计”字段中。

在上面的例子中:

'this'在内容中出现两次,'is': 2, 'the': 0, 'first':0, 'this':2, 'is':2

总计:2+2+0+0+2+2 = 8所以我们想在“总计”字段中输入 8

我知道我应该通过迭代集合来做到这一点(我们称之为“文档”):

db.documents.find().forEach(
function(result)
{
...
})

不确定要放入什么(我对此和 JS 都是新手)

p.s:它应该区分大小写。

最佳答案

好吧,看看 JS + MongoDB 教程。您需要访问 MongoDB shell 或 MongoDB GUI (RoboMongo) 才能执行。您可以创建新函数来计算内容字段中的文本(根据您的规则)并向文档添加新字段。

String.prototype.total = function(content) {
var result = 0;
var contentArr = content.split(" ");
var textArr = this.split(" ");
for(var i = 0; i < textArr.length; i++) {
for(var j = 0; j < contentArr.length; j++) {
result += textArr[i] === contentArr[j] ? 1 : 0;
}
}
return result;
}

db.documents.find().forEach(function(doc){
doc["total"] = doc["text"].total(doc["content"]);
print(doc);
// Save again with total value
//db.documents.save(doc);
})

Result:

{
"_id" : ObjectId("569c0be30586bcb40f7d253a"),
"text" : "this is the first this is",
"content" : "this is this is",
"total" : 8
}

关于javascript - mongoDB - 计算2个字符串中的常见单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34841860/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com