Node.js 在mongod数据库中搜索
我试图在数据库中搜索,但我没有得到任何结果,也找不到错误, 我在控制台中得到一个空数组,但数据库中充满了元素,在本例中包含“a” 如果我试图在数据库中查找所有内容,我会看到所有结果,因此$search或$text中的某些内容会破坏脚本 我真的很感激所有的帮助,我已经坐在那里撕头发好几天了Node.js 在mongod数据库中搜索,node.js,mongodb,mongodb-query,Node.js,Mongodb,Mongodb Query,我试图在数据库中搜索,但我没有得到任何结果,也找不到错误, 我在控制台中得到一个空数组,但数据库中充满了元素,在本例中包含“a” 如果我试图在数据库中查找所有内容,我会看到所有结果,因此$search或$text中的某些内容会破坏脚本 我真的很感激所有的帮助,我已经坐在那里撕头发好几天了 app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: true })); var db; MongoClient.con
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
var db;
MongoClient.connect("mongodb://localhost:27017/insights", function(err, database) {
db = database;
db.collection("textstore", {}, function(err, coll) {
if (err != null) {
db.createCollection("textstore", function(err, result) {
assert.equal(null, err);
});
}
db.ensureIndex("textstore", {
document: "text"
}, function(err, indexname) {
assert.equal(null, err);
});
});
});
app.post("/search", function(req, res) {
db.collection('textstore').find({"$text": {"$search": 'a'}}).toArray(function(err, items) {
console.log(items)
})
});
搜索MongoDB是语言感知的,默认语言是英语。语言意识意味着某些非常常见但通常毫无意义的词语被忽略。英语中的a
就是这样一个词。这里是t:
MongoDB支持各种语言的文本搜索。文本索引删除特定于语言的停止词(例如英语中的“the”、“an”、“a”、“and”等),并使用简单的特定于语言的后缀词干
可以尝试搜索更有意义的内容,也可以通过显式地将语言设置为“none”
,在搜索过程中禁用语言感知
顺便说一下,您还可以在创建索引时替代默认语言,甚至在文档和子文档级别上替代它。有关详细信息
db.collection('textstore').find({"$text": {"$search": 'a', $language:"none"}})