这里有一个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/

10-13 08:27