MongoDB基础--查询、索引与聚合

1,初始化数据库,插入数据:

  1. doc=({"name": "peter", "position": "teacher"})
  2. { "name" : "peter", "position" : "teacher" }
  3. > db.shiyanlou.insert(doc)
  4. > doc1=({"name": "tom", "position": "student"})
  5. { "name" : "tom", "position" : "student" }
  6. > db.shiyanlou.insert(doc1)

2,查询语句: db.collection_name.find(param):

  1. > db.shiyanlou.find()
  2. { "_id" : ObjectId("5559d1cca30df8c25bf44dd7"), "name" : "peter", "position" :
  3. "teacher" }
  4. { "_id" : ObjectId("5559d1e9a30df8c25bf44dd8"), "name" : "tom", "position" : "
  5. student" }
  6. >

-1,条件操作符:

  • (>) 大于 - \$gt #greate
  • (<) 小于 - \$lt #low
  • (>=) 大于等于 - \$gte #equal
  • (<= ) 小于等于 - \$lte

-2,type

  • 双精度型-1
  • 字符串-2
  • 对象-3
  • 数组-4
  • 二进制数据-5
  • 对象ID-7
  • 布尔类型-8
  • 数据-9
  • 空-10
  • 正则表达式-11
  • JS代码-13
  • 符号-14
  • 有作用域的JS代码-15
  • 32位整型数-16
  • 时间戳-17
  • 64位整型数-18
  • Min key-255
  • Max key-127
  1. db.shiyanlou.find({"name": {$type:2}})
  2. { "_id" : ObjectId("5559d1cca30df8c25bf44dd7"), "name" : "peter", "position" :
  3. "teacher" }
  4. { "_id" : ObjectId("5559d1e9a30df8c25bf44dd8"), "name" : "tom", "position" : "
  5. student" }

-3,limit : 读取指定数量的记录

  1. > db.shiyanlou.find().limit(1)
  2. { "_id" : ObjectId("5559d1cca30df8c25bf44dd7"), "name" : "peter", "position" :
  3. "teacher" }
  4. >

-4,skip:读取时跳过指定数据记录

  1. > db.shiyanlou.find().limit(1).skip(2)
  2. > db.shiyanlou.find().limit(1).skip(1)
  3. { "_id" : ObjectId("5559d1e9a30df8c25bf44dd8"), "name" : "tom", "position" : "
  4. student" }

-5,sort 排序 1 表示升序,-1表示降序

  1. db.shiyanlou.find().sort({"name": 1})
  2. { "_id" : ObjectId("5559d1cca30df8c25bf44dd7"), "name" : "peter", "position" :
  3. "teacher" }
  4. { "_id" : ObjectId("5559d1e9a30df8c25bf44dd8"), "name" : "tom", "position" : "
  5. student" }
  6. > db.shiyanlou.find().sort({"name":-1})
  7. { "_id" : ObjectId("5559d1e9a30df8c25bf44dd8"), "name" : "tom", "position" : "
  8. student" }

3,索引: db.collection_name.ensureIndex()

ensureIndex()的可选参数:

参数 类型 描述
background Boolean 建立索引要不要阻塞其他数据库操作,默认为false
unique Boolean 建立的索引是否唯一,默认false
name string 索引的名称,若未指定,系统自动生成
dropDups Boolean 建立唯一索引时,是否删除重复记录,默认flase
sparse Boolean 对文档不存在的字段数据不启用索引,默认false
expireAfterSeconds integer 设置集合的生存时间,单位为秒
v index version 索引的版本号
weights document 索引权重值,范围为1到99999
default-language string 默认为英语
language_override string 默认值为 language

来自为知笔记(Wiz)

时间: 2024-12-25 21:50:24

MongoDB基础--查询、索引与聚合的相关文章

MongoDB 基础(三)mongodb 中的索引使用

MongoDB中的索引和其他数据库索引类似,也是使用B-Tree结构.MongoDB的索引是在collection级别上的,并且支持在任何列或者集合内的文档的子列中创建索引. 下面是官方给出的一个使用索引查询和排序的一个结构图. 所有的MongoDB集合默认都有一个唯一索引在字段"_id"上,如果应用程序没有为 "_id"列定义一个值,MongoDB将创建一个带有ObjectId值的列.(ObjectId是基于 时间.计算机ID.进程ID.本地进程计数器 生成的)

Mongodb基础入门(3)——排序和索引

今天继续Mongodb,简单的记录下其排序和索引的使用. 在Mongodb中使用sort()方法对数据进行排序. 命令格式:db.collectionName.find().sort({key:参数}) 参数说明: -1:表示降序 1:表示升序(默认) doc集合中数据如下: > db.doc.find({},{_id:0,goods_id:1}) { "goods_id" : 1 } { "goods_id" : 4 } { "goods_id&q

MongoDB学习笔记~索引提高查询效率

索引这个东西大家不会陌生,只要接触到稍微大一点的数据,都会用到这东西,它可以提升查询的速度,相当代价就是占用了更多的存储空间,这也是正常的,符合“能量守恒定理”,哈哈!今天说的是MongoDB里的索引,在我进行对500万数据进行查询测试时,发现如果你的查询字段不加索引,那是相当恐怖的,一个简单的查询(单字段)要耗时30多秒,这种操作,基本可以认为服务器挂了,哈哈!当为字段加了索引之后,查询速度为ms级,100毫秒以内的速度真是把经兴奋坏了,呵呵! 建立索引 db.tableName.ensure

spring Mongodb查询索引报错 java.lang.NumberFormatException: empty String

笔者在mongo3.4/4.0环境下使用以下命令创建索引, db.getCollection("xxx.com").createIndex({ mobile: "" }, { name: "mobile_mac" }) 执行以下demo查询索引 mongoTemplate.indexOps(collection).getIndexInfo(); #笔者正式环境不是这么写的,这里方便大家理解,使用语法糖方式的代码 ;p 每次走到xxx.com表的时

10-31C#基础--数据库查询语句之聚合函数、分组

在查询语句时,也存在一些方法和属性,而这些方法在查询时统称为函数,便利查询时使用 聚合函数(都是针对字段操作) 聚合是缩减一系列输入值的表达式,例如缩减为单个值. Select*from biao 1.--求平均分AVG:只能对数字类型的操作,返回一个值(返回非null值的平均值) Select AVG(age)from biao--执行后没有列名 Select AVG(age) as nianing from biao---执行后有列名,加as. --放在select...from之间的一定是

MongoDb基础命令

一些基础忘记随时查看.. #整备恢复 mongodump --port 20001 --authenticationDatabase=admin -u *  -d lvlv -c lvlv -o /home mongorestore --drop  --host 172.16.201.74  --port 20001 --authenticationDatabase=admin -umgbackup -d test /tmp/liding/test/liding.bson #基于时间备份oplo

MongoDB基础教程系列--未完待续

最近对 MongoDB 产生兴趣,在网上找的大部分都是 2.X 版本,由于 2.X 与 3.X 差别还是很大的,所以自己参考官网,写了本系列.MongoDB 的知识还是很多的,本系列会持续更新,本文作为目录篇,方便阅读,有问题大家一块交流哈.多谢大家关注,转载请注明出处,谢谢! MongoDB基础教程系列--第一篇 进入MongoDB世界 MongoDB基础教程系列--第二篇 MongoDB基本操作(一) MongoDB基础教程系列--第三篇 MongoDB基本操作(二) MongoDB基础教程

MongoDB基础学习

一 简介 MongoDB是一款强大.灵活.且易于扩展的通用型数据库1.易用性 MongoDB是一个面向文档(document-oriented)的数据库,而不是关系型数据库. 不采用关系型主要是为了获得更好得扩展性.当然还有一些其他好处,与关系数据库相比,面向文档的数据库不再有"行"(row)的概念取而代之的是更为灵活的"文档"(document)模型. 通过在文档中嵌入文档和数组,面向文档的方法能够仅使用一条记录来表现复杂的层级关系,这与现代的面向对象语言的开发者

MongoDB学习笔记(索引)

一.索引基础:    MongoDB的索引几乎与传统的关系型数据库一模一样,这其中也包括一些基本的优化技巧.下面是创建索引的命令:    > db.test.ensureIndex({"username":1})    可以通过下面的名称查看索引是否已经成功建立:    > db.test.getIndexes()    删除索引的命令是:    > db.test.dropIndex({"username":1})    在MongoDB中,我们