• 周蓬安.blog的博客—强国博客—人民网 2019-05-10
  • 紫光阁中共中央国家机关工作委员会 2019-05-10
  • 感触名家笔下的端午文化吃香粽原来可以这样文艺 2019-05-09
  • 追梦夺冠游行嘲讽詹皇 百万人面前穿订制T恤羞辱他 2019-04-27
  • 《瘟疫传说》:黑死病恐怖 姐弟在绝望中求生 2019-04-10
  • 陕西国防工业职业技术学院百名大学生志愿者敬老院慰问孤寡老人陕西国防工业职业技术学院百名大学生志愿者敬老院慰问-陕西教育新闻 2019-04-08
  • 西藏拉萨:新家园 新生活 2019-04-08
  • 尊重和保障宗教信仰自由的中国实践 2019-04-06
  • 一敬泯恩仇 俄罗斯队主帅这个动作太暖了 2019-03-20
  • 四大名著剧组首次同台忆往事 经典影视剧如何铸就? 2018-12-07
  • “天眼”凝望 探秘宇宙 2018-12-07
  • 0

    Mongodb下单字段索引(Single Field Indexes)

    Posted by 撒得一地 on 2016年4月8日 in Mongodb教程
    国外稳定加速器推荐    Express | Vypr

    MongoDB 完全支持集合文档中的任何字段的索引。默认情况下,所有集合都有一个名为 _id 字段的索引,并且应用程序和用户可以添加附加的索引,以支持重要的查询和操作。

    MongoDB 根据操作类型的不同支持包含单个字段或多个字段的索引。本文描述包含单个字段的升序或降序索引。下图是关于单字段索引。

    图中的score字段为升序索引

    实例

    在friedns集合中给出如下文档:

    { "_id" : ObjectId(...),
      "name" : "Alice",
      "age" : 27
    }
    

    以下的命令将name字段设置为索引:

    db.friends.createIndex( { "name" : 1 } )
    

    Cases
    案例

    _id Field Index
    _id字段索引

    MongoDB 为所有集合自动创建 _id 索引,_id 索引是自增而且唯一的。而且你不能删除 _id 字段的索引。

    _id 字段作为一个集合的主键。每个文档必须有一个唯一 _id 字段。你可以在 _id 字段中存储任何不重复的值。_Id 的默认值是在客户端插入文档时自动生成的 ObjectId。ObjectId 是 12 字节的唯一标识符,该唯一标识符适合用作 _id 字段的值。

    注意

    在分片集群下(集合的文档中),如果你不使用 _id 字段作为分片键(文档主键),那么在你的应用程序中必须确保 _id 字段中的值的唯一性来防止出错。这最经常通过使用标准自动生成的 ObjectId 值。

    在2.2版本前,固定集合(capped collections)没有一个 _id 字段。在 2.2 及更新的版本,固定集合(capped collections)都有一个 _id 字段,除了那些在本地数据库中生成的集合。

    Indexes on Embedded Fields
    内嵌索引

    正如你可以在文档中的顶级字段编制索引,同样也可以在嵌入文档中(embedded documents)的字段上创建索引(在二级字段上创建索引)。内嵌字段的索引与内嵌文档的索引不同,其中包含了索引中嵌入文档的最大索引大小的全部内容。相反,在嵌入式字段的索引中允许你使用"点表示法"来表示内嵌文档。

    看上面的描述很抽象,直接看例子就一目了然了。查看下面一个名为 people 的集合包含了如下文档内容:

    {"_id": ObjectId(...),
     "name": "John Doe",
     "address": {
            "street": "Main",
            "zipcode": "53511",
            "state": "WI"
            }
    }
    

    你可以对 address 字段下的 zipcode 键进行索引创建,使用以下的方法(用点表示法,即address.zipcode):

    db.people.createIndex( { "address.zipcode": 1 } )
    

    Indexes on Embedded Documents
    内嵌文档索引

    你同样可以创建内嵌文档索引。

    例子,在 factories 集合中包含了含有 metro 字段的文档,如:

    {
      _id: ObjectId(123),
      metro: {
              city: "New York",
             state: "NY"
           },
      name: "Giant Factory"
    }
    

    在上面中,metro整个字段就属于内嵌文档(embedded document),包含了两个内嵌字段(embedded fields)city 和 state,你可以使用下面命令对metro这整个字段进行索引创建,如:

    db.factories.createIndex( { metro: 1 } )
    

    以下的查询会使用到 metro 字段的索引:

    db.factories.find( { metro: { city: "New York", state: "NY" } } )
    

    该查询会返回上述 factories 集合下 _id 为 ObjectId(123)的文档。当在嵌入文档(embedded documents)执行同等条件匹配查询时,字段的顺序是有影响的,必须和嵌入的文档(embedded documents)完全匹配。例如,下面的查询与上述文档不匹配 ︰

    db.factories.find( { metro: { state: "NY", city: "New York" } } )
    

    本文地址://www.cfage.com/1774.html,转载请注明。

    上一篇:

    下一篇:

    相关推荐

    发表评论

    电子邮件地址不会被公开。 必填项已用*标注

    1 + 3 = ?

    网站地图|广东快乐10分开奖直播

    Copyright © 2015-2019 广东快乐10分开奖直播 All rights reserved.
    闽ICP备15015576号-1,版权所有?psz.

  • 周蓬安.blog的博客—强国博客—人民网 2019-05-10
  • 紫光阁中共中央国家机关工作委员会 2019-05-10
  • 感触名家笔下的端午文化吃香粽原来可以这样文艺 2019-05-09
  • 追梦夺冠游行嘲讽詹皇 百万人面前穿订制T恤羞辱他 2019-04-27
  • 《瘟疫传说》:黑死病恐怖 姐弟在绝望中求生 2019-04-10
  • 陕西国防工业职业技术学院百名大学生志愿者敬老院慰问孤寡老人陕西国防工业职业技术学院百名大学生志愿者敬老院慰问-陕西教育新闻 2019-04-08
  • 西藏拉萨:新家园 新生活 2019-04-08
  • 尊重和保障宗教信仰自由的中国实践 2019-04-06
  • 一敬泯恩仇 俄罗斯队主帅这个动作太暖了 2019-03-20
  • 四大名著剧组首次同台忆往事 经典影视剧如何铸就? 2018-12-07
  • “天眼”凝望 探秘宇宙 2018-12-07
  • 湖南彩票快乐十分 足彩14场胜负彩计算器 湖南体育彩票中心地址 河南快3 时时彩缩水工具免费版 极速飞艇开奖官网 山东福彩3d开奖结果 体彩顶呱刮刮 赌场风云 电视剧 北京赛车pk10盈利模式 吉林时时彩开奖纪录 香港六合彩110期开奖结果 秒速时时彩人工计划 决战二十一点 在线观看 重庆福彩中奖领取 百度彩票双色球走势图