首页 > 其他分享 >mongo索引类型

mongo索引类型

时间:2024-07-18 18:30:56浏览次数:6  
标签:文本 mongo text db 索引 score 类型 createIndex

要创建单字段索引,请使用以下原型:

db.<collection>.createIndex( { <field>: <sortOrder> } )

复合索引

要创建复合索引,请使用下列 db.collection.createIndex()方法:

 

db.<collection>.createIndex( {
   <field1>: <sortOrder>,
   <field2>: <sortOrder>,
   ...
   <fieldN>: <sortOrder>
} )

例如,索引支持以下查询:

索引以升序 ( 1) 或降序 ( -1) 顺序存储对字段的引用。对于复合索引,排序顺序可以确定索引是否支持排序操作。

例子

 考虑leaderboard包含以下文档的集合:
db.leaderboard.insertMany( [
   {
      "score": 50,
      "username": "Alex Martin",
      "date": ISODate("2022-03-01T00:00:00Z")
   },
   {
      "score": 55,
      "username": "Laura Garcia",
      "date": ISODate("2022-03-02T00:00:00Z")
   },
   {
      "score": 60,
      "username": "Alex Martin",
      "date": ISODate("2022-03-03T00:00:00Z")
   },
   {
      "score": 60,
      "username": "Riya Patel",
      "date": ISODate("2022-03-04T00:00:00Z")
   },
   {
      "score": 50,
      "username": "Laura Garcia",
      "date": ISODate("2022-03-05T00:00:00Z")
   }
] )

此查询返回排行榜结果:

db.leaderboard.find().sort( { score: -1, username: 1 } )

多键索引

要创建多键索引,请使用以下原型:

db.<collection>.createIndex( { <arrayField>: <sortOrder> } )

创建文本索引

要创建文本索引,请使用方法db.collection.createIndex() 。要索引包含字符串或字符串元素数组的字段,请指定字符串"text"作为索引键:

db.<collection>.createIndex(
   {
      <field1>: "text",
      <field2>: "text",
      ...
   }
)

一个集合最多可以有一个文本索引。

您可以在单个文本索引中索引多个字段。文本索引最多可包含 32 个字段。

db.blog.createIndex( { "content": "text" } )
db.blog.find(
   {
      $text: { $search: "coffee" }
   }
)

输出:

[
   {
     _id: 1,
     content: 'This morning I had a cup of coffee.',
     about: 'beverage',
     keywords: [ 'coffee' ]
   },
   {
     _id: 3,
     content: 'My favorite flavors are strawberry and coffee',
     about: 'ice cream',
     keywords: [ 'food', 'dessert' ]
   }
]

 指定文本索引的默认语言

 默认情况下,文本索引的default_language 为english。为了提高非英语文本搜索查询的性能,您可以指定与文本索引关联的其他默认语言。

db.<collection>.createIndex(
   { <field>: "text" },
   { default_language: <language> }
)

 

 

 

 

 

标签:文本,mongo,text,db,索引,score,类型,createIndex
From: https://www.cnblogs.com/wonchaofan/p/18310211

相关文章

  • Python学习:Python数据类型大盘点
    Python的数据类型非常丰富,它们为编程提供了强大的工具来处理各种数据。以下是对Python数据类型的详细盘点:数值类型:整型(Integers):用于表示整数,可以是正数、负数或零。在Python中,整型可以表示的数值范围是平台特定的。浮点型(FloatingPointNumbers):用于表示带有小数部分的数......
  • C++中的vector对应Java中的什么类型?
    C++中的vector对应Java中的ArrayList类型。‌C++中的vector和Java中的ArrayList都是可变长的数组或数组列表,‌它们具有以下相似特性:‌两者都是动态数组,‌可以根据需要自动增长。‌它们都支持通过索引访问元素,‌并且元素是有序的。‌它们都提供了添加、‌删除和查询元素的方法......
  • python 内置类型简述(4) —— 集合映射类(set、frozenset、dict)
    注:Iterable[int]为任一元素为int类型的可迭代对象,如列表[1,2,3]注:set()为一个集合实例,可用任一列表替换(如{‘asd’}),frozenset()、dict()同理注:set|frozenset|dict表示参数可为set、frozenset、dict任一类型,set()|frozenset()|dict()同理1.新建字典{k......
  • C#中的Nullable<T>类型
    在C#中,Nullable<T>类型用于值类型(例如int,double,bool等),使它们能够接受null作为值,但不能直接用于引用类型(如类)。因为引用类型默认就可以接受null值。 什么是`Nullable<T>`类型?`Nullable<T>`是C#中的一种特殊的泛型结构,它允许值类型(如`int`,`bool`,`double`等)拥有`......
  • mongo并发与锁
    MongoDB使用哪种类型的锁定?除了用于读取的共享(S)锁定模式和用于写入操作的独占(X)锁定模式之外,意图共享(IS)和意图独占(IX)模式表示使用更细粒度的锁来读取或写入资源的意图。按一定粒度锁定时,所有更高级别都使用意向锁例如,当锁定一个集合进行写入(使用模式X)时,相应的......
  • BLOB类型二进制数据转换成Bitmap类型数据,并显示成缩略图,类似手机相册的封面
    classDemoDuilib:publicWindowImplBase,publicCButtonUI{public:DemoDuilib();~DemoDuilib();voidtest();staticstd::vector<uint8_t>thumbData;//存储BLOB类型二进制数据private:voidPaintStatusImage(HDChDC)override;//保持纵横比并......
  • Mysql联合索引和索引条件下推
    1、概念介绍联合索引联合索引和聚集索引一样使用B+树结构存储,联合索引的索引节点存储多个键值对,按首列数值排序,叶子节点存放所有的索引值以及对应的主键,如果需要查询非联合索引中的字段需要进行回表查询。联合索引的大小小于聚集索引。索引覆盖InnoDB存储引擎支持覆盖索引(cov......
  • Spring中Map类型依赖注入的使用
    为了详细解释这段代码的装配过程,并编写一份详细的开发文档,我们需要从几个方面进行阐述:Spring框架的依赖注入机制、@Resource注解的作用、Map<String,ProcessListener>类型作为依赖的特别性,以及这段代码在实际开发中的应用和注意事项。1.Spring框架的依赖注入机制Spring框架的......
  • Java中如何将一个 List 类型的参数传入存储过程(Oracle数据库)
    Java中如何将一个List类型的参数传入存储过程(Oracle数据库)步骤简述存储过程TYPE模型映射对象JAVA代码链接转换可能出现的错误步骤简述定义好存储过程,Java中的数组对象建立数据库映射对象来映射List类型的数据Java中调用存储过程传入List类型的参数存储过......
  • 一文了解大模型的三种类型
    大模型的发展至今,吸引了众多初学者的加入。其中,有小伙伴提出疑问:“有些大模型会同时开源三种模型,这些不同类型模型的区别是什么呢?”,那么本文将简要介绍LLM中的三种重要模型:基座模型(base)、聊天模型(chat)和指令模型(instruct)。一、base模型                b......