Node.js 在mongod数据库中搜索

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

我试图在数据库中搜索,但我没有得到任何结果,也找不到错误, 我在控制台中得到一个空数组,但数据库中充满了元素,在本例中包含“a”

如果我试图在数据库中查找所有内容,我会看到所有结果,因此$search或$text中的某些内容会破坏脚本

我真的很感激所有的帮助,我已经坐在那里撕头发好几天了

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"}})