如何在 MongoDB 中执行关键字查询

6 mongodb nosql

这里我有一个 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
Run Code Online (Sandbox Code Playgroud)

我的问题是如何在书籍描述中搜索所有带有“编程”一词的书籍?

我是 NoSQL 的新手,目前我只能使用 find() 来执行精确搜索而不是关键字搜索。

Phi*_*ipp 4

该文档有一章关于Mongo 中的全文搜索,建议将每个字符串拆分为单个单词的数组,以便您可以为其建立索引以加快查找速度。

\n\n
{   Id\xef\xbc\x9a001,\n    Name\xef\xbc\x9a"C# step by step",\n    Description\xef\xbc\x9a"Programming book on C#",\n    Description_tags: [\n        "Programming",\n        "book",\n        "on",\n        "C#"]\n}\n\ndb.books.ensureIndex({Description_tags:1});\n\ndb.books.find(Description_tags:"Programming");\n
Run Code Online (Sandbox Code Playgroud)\n\n

当速度不是问题并且您想避免更改数据结构时,您还可以使用正则表达式。但请记住,这种扩展性很差:查找时间将与集合中的条目数量成线性关系。

\n\n
db.collection.find( {description: { $regex: "Programming"} } );\n
Run Code Online (Sandbox Code Playgroud)\n