这里我有一个 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() 来执行精确搜索而不是关键字搜索。
该文档有一章关于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\ndb.collection.find( {description: { $regex: "Programming"} } );\n
Run Code Online (Sandbox Code Playgroud)\n
归档时间: |
|
查看次数: |
6534 次 |
最近记录: |