Node.js Mongo文本索引没有';当什么也没有归还时,你就不能完成

Node.js Mongo文本索引没有';当什么也没有归还时,你就不能完成,node.js,mongodb,mongodb-indexes,Node.js,Mongodb,Mongodb Indexes,我不确定我是否有合适的词汇来描述我正在忍受的错误 以下是我的收藏中文档的通用模式 { _id: ObjectId(), name: String, business: String, address: { search_type: Character, address: String, city: String, state: String, zip: Number } } 我想根据地址进行搜索。搜索类型

我不确定我是否有合适的词汇来描述我正在忍受的错误

以下是我的收藏中文档的通用模式

{
   _id: ObjectId(),
   name: String,
   business: String,
   address: {
      search_type: Character,
      address: String,
      city: String,
      state: String,
      zip: Number
   }
}
我想根据
地址进行搜索。搜索类型
,因此我在我的集合中为该字段创建了一个文本索引

{ 
  v: 1,
  key: { _fts: 'text', _ftsx: 1 },
  name: 'address.search_type_text',
  ns: 'admin.customer',
  default_language: 'none',
  weights: { 'address.search_type': 1 },
  language_override: 'language',
  textIndexVersion: 3 
}
现在我知道,我的数据实际上应该只有C、G或T作为搜索类型,当我使用支持的搜索类型之一对此集合运行find查询时,查询运行得很好

db.collection('blah').find({'address.search_type':'C'}).limit(10).toArray(function(err, result){
    if(err) console.log(err);
    else console.log(result[0]);
    db.close();
});
但当我使用
地址运行此查询时,搜索类型应返回0个文档,我的查询可能永远不会完成或超时

db.collection('blah').find({'address.search_type':'Z'}).limit(10).toArray(function(err, result){
    if(err) console.log(err);
    else console.log(result[0]);
    db.close();
});

当应该有0个文档时,为什么我的查询没有完成运行/超时,但当它可以找到文档时却可以正常工作?

在尝试了不同类型的索引后,我意识到我根本不需要文本索引

这可能是一个令人尴尬的错误,但我刚刚开始学习
mongodb
,所以不管怎样

无论如何,我意识到我所需要做的就是在
address.search\u type
上创建一个字段索引

{ v: 1,
  key: { 'address.Search_Type': 1 },
  name: 'address.Search_Type_1',
  ns: 'admin.customer' 
}
我还不能完全确定为什么文本索引不起作用,因为我已经将语言设置为“无”,但我需要的只是一个索引,这是有道理的

我认为文本索引主要用于搜索大文本块中的短语或关键字。因此,我的搜索只搜索一个字符这一事实可能会造成问题,因为这不是文本索引的目的