mongodb中数字字段的索引和搜索
我创建了以下集合和文本索引:mongodb中数字字段的索引和搜索,mongodb,Mongodb,我创建了以下集合和文本索引: db.test1.insert({"name":"kumar goyal","email":'rakesh.goyal@gmail.com',"phoneNo":9742140651}); db.test1.ensureIndex({ "$**": "text" },{ name: "TextIndex" }) 部分搜索用于名称和电子邮件字段,例如 db.test1.runCommand("text",{search:'rakesh'}); 正确返回记录,但它在
db.test1.insert({"name":"kumar goyal","email":'rakesh.goyal@gmail.com',"phoneNo":9742140651});
db.test1.ensureIndex({ "$**": "text" },{ name: "TextIndex" })
部分搜索用于名称和电子邮件字段,例如
db.test1.runCommand("text",{search:'rakesh'});
正确返回记录,但它在phoneNo
字段中不起作用
db.test1.runCommand("text",{search:'9742'});
它不起作用
我猜文本索引对数字字段不起作用。mongodb中是否还有其他方法可以使用它?您将电话号码作为一个号码插入,然后作为字符串进行搜索 也许你应该考虑把电话号码插入为一个字符串。您不打算在该字段上执行任何算术操作,是吗
通过这种方式,mongo将能够对“数字”执行文本搜索(如您给出的示例),但将它们视为字符串。mongo DB全文不支持部分搜索。因此它不起作用,与数字无关。即使我像这样插入db.test1.insert({“name”:“kumar goyal”,“email”:“rakesh”)这样的数据,它也不起作用。goyal@gmail.com“,”电话号码“:”9742140651“});你为什么要在电话号码上做文本搜索,这其实有点奇怪。通常情况下,您需要将手机号码拆分为区号和实际号码,将它们进行整合,然后通过$gt和$lt按代币进行搜索