所以我有一个奇怪配置的数据库导入到 MongoDB 中,如下所示:
"_id" : ObjectId("51191d45890311d9b2a0865d"),
"field1" : "randomtextstuff",
"field2" : "randomtextstuff",
"field3" : "randomtextstuff",
"field4" : "randomtextstuff",
"field5" : "randomtextstuff"
某些文档有 100 个字段,而其他文档则没有。
所以我想测试新的文本搜索,所以我尝试了以下索引:
db.profile_specialties.ensureIndex({"field1":"text",
"field2":"text",
"field3":"text",
"field4":"text",
"field5":"text",
"field6":"text",
... All the way to 100
"field96":"text",
"field97":"text",
"field98":"text",
"field99":"text",
"field100":"text"})
返回的错误消息是:
{
"err" : "ns name too long, max size is 128",
"code" : 10080,
"n" : 0,
"connectionId" : 1,
"ok" : 1
}
还有人遇到过这个问题吗?
最佳答案
通过 MongoDB 2.4 文本搜索,您可以使用新的 wildcard specifier ($**
)用字符串内容索引所有字段:
db.profile_specialties.ensureIndex("$**":"text"})
不过,您应该考虑到跨所有字段的文本索引将会非常大。
关于MongoDB 2.4 新的文本索引功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15532739/