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'
}
我还不能完全确定为什么文本索引不起作用,因为我已经将语言设置为“无”,但我需要的只是一个索引,这是有道理的
我认为文本索引主要用于搜索大文本块中的短语或关键字。因此,我的搜索只搜索一个字符这一事实可能会造成问题,因为这不是文本索引的目的