【发布时间】:2017-01-10 15:30:00
【问题描述】:
我不确定我是否有合适的词汇来描述我所承受的错误。
这是我收藏中文档的一般架构
{
_id: ObjectId(),
name: String,
business: String,
address: {
search_type: Character,
address: String,
city: String,
state: String,
zip: Number
}
}
我想根据 address.search_type 进行搜索,因此我为我的集合中的这些字段创建了一个文本索引。
{
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 作为搜索类型,当我使用支持的 search_types 之一对此集合运行查找查询时,查询运行良好。
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 个文档的 address.search_type 运行此查询时,我的查询要么永远不会完成,要么会超时。
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 个文档时无法完成运行/超时,但在它可以找到文档时却可以正常工作?
【问题讨论】:
标签: node.js mongodb mongodb-indexes