这里有一个BOOK集合:
Book Id:001
Book Name:C# step by step
Book Description:Programming book on C#
Book Id:002
Book Name:Head First Java
Book Description:Programming Book on Java
Book Id:003
Book Name:Steve Jobs
Book Description:biography of Jobs
我的问题是如何在图书说明中搜索所有带有“编程”字样的图书?
我是NoSQL的新手,目前只能使用find()进行精确搜索,而不能使用关键字搜索。
最佳答案
该文档有一章关于Full Text Search in Mongo的建议,该章建议将每个字符串分成单个单词的数组,以便您可以对其进行索引以加快查找速度。
{ Id:001,
Name:"C# step by step",
Description:"Programming book on C#",
Description_tags: [
"Programming",
"book",
"on",
"C#"]
}
db.books.ensureIndex({Description_tags:1});
db.books.find(Description_tags:"Programming");
如果速度不是问题,并且您希望避免更改数据结构,则也可以使用regular expressions。但是请记住,这会严重扩展:查找时间将与集合中条目的数量成线性关系。
db.collection.find( {description: { $regex: "Programming"} } );
关于mongodb - 如何在MongoDB中执行关键字查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13606555/