所以我有一个奇怪配置的数据库导入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
}
还有其他人遇到过这个问题吗?
答案 0 :(得分:2)
使用MongoDB 2.4文本搜索,您可以使用新的wildcard specifier ($**
)来索引包含字符串内容的所有字段:
db.profile_specialties.ensureIndex("$**":"text"})
但是你应该考虑所有字段的文本索引会非常大。