mongoDB基础

查看:

  • db:查看当前数据库名称(默认的数据库为test)
  • db.stats():查看当前数据库信息
  • show dbs:查看所有数据库名称
  • show collections:当前数据库的集合(表)

数据库的切换:

use   数据库名称

  • 切换数据库
  • 如果数据库不存在,则指向数据库,但不创建,直到插入数据或创建集合时数据库才被创建

数据库的删除:

db.dropDatabse()
  • 删除当前的数据库
  • 如果数据库不存在,则什么也不做

集合的创建(表)

db.createCollection(name,options)

  • name是要创建的集合的名称
  • options是一个文档,用于指定集合的配置,可选参数

      例1:不限制集合大小

      db.createCollection("stu")

      例2:限制集合大小

  • 参数capped:默认值为false表示不设置上限,值为true表示设置上限
  • 参数size:当capped值为true时,需要指定此参数,表示上限大小,当文档达到上限时,会将之前的数据覆盖,单位为字节

      db.createCollection("stu",{capped:true,size:10})

删除集合

db.集合名称.drop()


数据类型

  • 下表为MongoDB中常用的几种数据类型:
  • Object ID:文档ID
  • String:字符串,最常用,必须是有效的UTF-8
  • Boolean:存储一个布尔值,true或false
  • Integer:整数可以是32位或64位,这取决于服务器
  • Double:存储浮点值
  • Arrays:数组或列表,多个值存储到一个键
  • Object:用于嵌入式的文档,即一个值为一个文档
  • Null:存储Null值
  • Timestamp:时间戳
  • Date:存储当前日期或时间的UNIX时间格式
         object id
  • 每个文档都有一个属性,为_id,保证每个文档的唯一性
  • 可以自己去设置_id插入文档
  • 如果没有提供,那么MongoDB为每个文档提供了一个独特的_id,类型为objectID
  • objectID是一个12字节的十六进制数
    • 前4个字节为当前时间戳
    • 接下来3个字节的机器ID
    • 接下来的2个字节中MongoDB的服务进程id
    • 最后3个字节是简单的增量值

插入

db.集合名称.insert(document)

  • 插入文档时,如果不指定_id参数,MongoDB会为文档分配一个唯一的ObjectId

例1

db.stu.insert({name:'gj',gender:1}

例2

s1={_id:'20160101',name:'hr'}s1.gender=0db.stu.insert(s1)

更新

db.集合名称.update(
   <query>,
   <update>,
   {multi: <boolean>}
)

  • 参数query:查询条件,类似sql语句update中where部分
  • 参数update:更新操作符,类似sql语句update中set部分
  • 参数multi:可选,默认是false,表示只更新找到的第一条记录,值为true表示把满足条件的文档全部更新

  • 例3:将name为'hr'的数据,更新为mnc,而且将其他属性去除。
db.stu.update({name:'hr'},{name:'mnc'})
  • 例4:指定属性更新,通过操作符$set,$set:指定属性更新,有这个属性就更新,否则添加。不影响其他属性。
db.stu.insert({name:'hr',gender:0})
db.stu.update({name:'hr'},{$set:{name:'hys'}})
  • 例5:修改多条匹配到的数据
db.stu.update({},{$set:{gender:0}},{multi:true})

保存

db.集合名称.save(document)

  • 如果文档的_id已经存在则修改,如果文档的_id不存在则添加

例:

db.stu.save({_id:'20160102','name':'wyk'})

删除

db.集合名称.remove(
   <query>,
   {
     justOne: <boolean>
   }
)
  • 参数query:可选,删除的文档的条件
  • 参数justOne:可选,如果设为true或1,则只删除一条,默认false,表示删除多条

例:只删除匹配到的第一条

db.stu.remove({gender:0},{justOne:true})

例:全部删除

db.stu.remove({})

数据查询

基本查询
  • 方法find():查询
     db.集合名称.find({条件文档})
  • 方法findOne():查询,只返回第一个
    db.集合名称.findOne({条件文档})
  • 方法pretty():将结果格式化
     db.集合名称.find({条件文档}).pretty()

比较运算符
  • 等于,默认是等于判断,没有运算符
  • 小于$lt
  • 小于或等于$lte
  • 大于$gt
  • 大于或等于$gte
  • 不等于$ne
  • 例1:查询名称等于'gj'的学生
    db.stu.find({name:'gj'})
  • 例2:查询年龄大于或等于18的学生
    db.stu.find({age:{$gte:18}})
逻辑运算符
  • 查询时可以有多个条件,多个条件之间需要通过逻辑运算符连接
  • 逻辑与:默认是逻辑与的关系
  • 例3:查询年龄大于或等于18,并且性别为1的学生
     db.stu.find({age:{$gte:18},gender:1})
  • 逻辑或:使用$or
  • 例4:查询年龄大于18,或性别为0的学生
   db.stu.find({$or:[{age:{$gt:18}},{gender:1}]})
  • and和or一起使用
  • 例5:查询年龄大于18或性别为0的学生,并且学生的姓名为gj
   db.stu.find({$or:[{age:{$gte:18}},{gender:1}],name:'gj'})
范围运算符
  • 使用"$in","$nin" 判断是否在某个范围内
  • 例6:查询年龄为18、28的学生
     db.stu.find({age:{$in:[18,28]}})
支持正则表达式
  • 使用//或$regex编写正则表达式
  • 例7:查询姓黄的学生
     db.stu.find({name:/^黄/})
    db.stu.find({name:{$regex:'^黄'}}})
自定义查询
  • 使用$where后面写一个函数,返回满足条件的数据
  • 例7:查询年龄大于30的学生
    db.stu.find({$where:function(){return this.age>20}})

Limit

  • 方法limit():用于读取指定数量的文档
  • 语法:
    db.集合名称.find().limit(NUMBER)
  • 参数NUMBER表示要获取文档的条数
  • 如果没有指定参数则显示集合中的所有文档
  • 例1:查询2条学生信息
    db.stu.find().limit(2)

skip

  • 方法skip():用于跳过指定数量的文档
  • 语法:
     db.集合名称.find().skip(NUMBER)
  • 参数NUMBER表示跳过的记录条数,默认值为0
  • 例2:查询从第3条开始的学生信息
    db.stu.find().skip(2)
  • 方法limit()和skip()可以一起使用,不分先后顺序

  • 创建数据集

    for(i=0;i<15;i++){db.t1.insert({_id:i})}
  • 查询第5至8条数据
    db.stu.find().limit(4).skip(5)
    或
    db.stu.find().skip(5).limit(4)

投影

  • 在查询到的返回结果中,只选择必要的字段,而不是选择一个文档的整个字段
  • 如:一个文档有5个字段,需要显示只有3个,投影其中3个字段即可
  • 语法:
  • 参数为字段与值,值为1表示显示,值为0不显示
     db.集合名称.find({},{字段名称:1,...})
  • 对于需要显示的字段,设置为1即可,不设置即为不显示
  • 特殊:对于_id列默认是显示的,如果不显示需要明确设置为0
  • 例1:其他的正常显示
     db.stu.find({},{name:0,gender:0})
  • 例2
    db.stu.find({},{_id:0,name:1,gender:1})

排序

  • 方法sort(),用于对结果集进行排序
  • 语法
     db.集合名称.find().sort({字段:1,...})
  • 参数1为升序排列
  • 参数-1为降序排列
  • 例1:根据性别降序,再根据年龄升序
    db.stu.find().sort({gender:-1,age:1})

统计个数

  • 方法count()用于统计结果集中文档条数
  • 语法
db.集合名称.find({条件}).count()
  • 也可以与为
 db.集合名称.count({条件})
  • 例1:统计男生人数
db.stu.find({gender:1}).count()
  • 例2:统计年龄大于20的男生人数
db.stu.count({age:{$gt:20},gender:1})

消除重复

  • 方法distinct()对数据进行去重
  • 语法
db.集合名称.distinct('去重字段',{条件})
  • 例1:查找年龄大于18的性别(去重)
db.stu.distinct('gender',{age:{$gt:18}})

示例:

#查看当前数据库信息
> db.stats()
{
	"db" : "student",
	"collections" : 0,
	"views" : 0,
	"objects" : 0,
	"avgObjSize" : 0,
	"dataSize" : 0,
	"storageSize" : 0,
	"numExtents" : 0,
	"indexes" : 0,
	"indexSize" : 0,
	"fileSize" : 0,
	"ok" : 1
}

#查看当前数据库
> db
student

#在当前数据库下创建表
> db.createCollection('stu')
{ "ok" : 1 }

#查看所有数据库
> show dbs
admin    0.000GB
local    0.000GB
student  0.000GB

#查看当前数据库的表
> show collections
stu

#删除集合stu
> db.stu.drop()
true
> db
student

#插入数据,如果不指定_id参数,MongoDB会为文档分配一个唯一的ObjectId
> db.stu.insert({name:'zheng',gebder:0})
WriteResult({ "nInserted" : 1 })

> db.stu.insert({_id:'2017-09-13',name:'zheng2',gender:1})
WriteResult({ "nInserted" : 1 })

#查看stu的所有数据
> db.stu.find()
{ "_id" : ObjectId("59b8db113e94fa5ff7959e6f"), "name" : "zheng", "gebder" : 0 }
{ "_id" : "2017-09-13", "name" : "zheng2", "gender" : 1 }

#update更新,{query}{update}{multi:false/true}
#将name为'zheng'的数据,更新为huang,而且将其他属性去除。
> db.stu.update(
... {name:'zheng'},{name:'huang'}
... )
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.stu.find()
{ "_id" : ObjectId("59b8db113e94fa5ff7959e6f"), "name" : "huang" }
{ "_id" : "2017-09-13", "name" : "zheng2", "gender" : 1 }

#更新一条记录
#选择全部数据,update默认只更新第一条记录
> db.stu.update(
... {},{$set:{name:'zheng'}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.stu.find()
{ "_id" : ObjectId("59b8db113e94fa5ff7959e6f"), "name" : "zheng" }
{ "_id" : "2017-09-13", "name" : "zheng2", "gender" : 1 }

#更新多条记录
#设置multi:true,把满足条件的文档全部更新
> db.stu.update( {},{$set:{name:'zheng'}},{multi:true})
WriteResult({ "nMatched" : 2, "nUpserted" : 0, "nModified" : 1 })
> db.stu.find()
{ "_id" : ObjectId("59b8db113e94fa5ff7959e6f"), "name" : "zheng" }
{ "_id" : "2017-09-13", "name" : "zheng", "gender" : 1 }

> use student
switched to db student
> db.stu.find()
{ "_id" : ObjectId("59b8db113e94fa5ff7959e6f"), "name" : "zheng" }
{ "_id" : "2017-09-13", "name" : "zheng", "gender" : 1 }
{ "_id" : ObjectId("59b8e84e1ae1a5ac6bd25d8c"), "name" : "李木子" }

#$set:指定属性更新,有这个属性就更新,否则添加。不影响其他属性。
#将name为:李木子,修改为立夏,同时添加gender属性
> db.stu.update({name:'李木子'},{$set:{name:'立夏',gender:0}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.stu.find()
{ "_id" : ObjectId("59b8db113e94fa5ff7959e6f"), "name" : "zheng" }
{ "_id" : "2017-09-13", "name" : "zheng", "gender" : 1 }
{ "_id" : ObjectId("59b8e84e1ae1a5ac6bd25d8c"), "name" : "立夏", "gender" : 0 }

#使用$set只修改gender属性,不影响其他属性
> db.stu.update({name:'立夏'},{$set:{gender:1}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.stu.find()
{ "_id" : ObjectId("59b8db113e94fa5ff7959e6f"), "name" : "zheng" }
{ "_id" : "2017-09-13", "name" : "zheng", "gender" : 1 }
{ "_id" : ObjectId("59b8e84e1ae1a5ac6bd25d8c"), "name" : "立夏", "gender" : 1 }

#save:如果文档的_id已经存在则修改,如果文档的_id不存在则添加
> db.stu.save({name:'murong',gender:1})
WriteResult({ "nInserted" : 1 })
> db.stu.find()
{ "_id" : ObjectId("59b8db113e94fa5ff7959e6f"), "name" : "zheng" }
{ "_id" : "2017-09-13", "name" : "zheng", "gender" : 1 }
{ "_id" : ObjectId("59b8e84e1ae1a5ac6bd25d8c"), "name" : "立夏", "gender" : 1 }
{ "_id" : ObjectId("59b8e98ffdefef4e475a942b"), "name" : "murong", "gender" : 1 }

> db.stu.save({_id:ObjectId("59b8e98ffdefef4e475a942b"),name:'zhenglll',gender:1})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.stu.find()
{ "_id" : ObjectId("59b8db113e94fa5ff7959e6f"), "name" : "zheng" }
{ "_id" : "2017-09-13", "name" : "zheng", "gender" : 1 }
{ "_id" : ObjectId("59b8e84e1ae1a5ac6bd25d8c"), "name" : "立夏", "gender" : 1 }
{ "_id" : ObjectId("59b8e98ffdefef4e475a942b"), "name" : "zhenglll", "gender" : 1 }

#remove:删除行,justOne:true/1 只删除一条记录 默认false,删除多条记录
#删除一条记录
> db.stu.remove({},{justOne:true})
WriteResult({ "nRemoved" : 1 })
> db.stu.find()
{ "_id" : "2017-09-13", "name" : "zheng", "gender" : 1 }
{ "_id" : ObjectId("59b8e84e1ae1a5ac6bd25d8c"), "name" : "立夏", "gender" : 1 }
{ "_id" : ObjectId("59b8e98ffdefef4e475a942b"), "name" : "zhenglll", "gender" : 1 }
> db.stu.save({name:'murong',gender:0})
WriteResult({ "nInserted" : 1 })
> db.stu.save({name:'夏至',gender:0})
WriteResult({ "nInserted" : 1 })
> db.stu.find()
{ "_id" : "2017-09-13", "name" : "zheng", "gender" : 1 }
{ "_id" : ObjectId("59b8e84e1ae1a5ac6bd25d8c"), "name" : "立夏", "gender" : 1 }
{ "_id" : ObjectId("59b8e98ffdefef4e475a942b"), "name" : "zhenglll", "gender" : 1 }
{ "_id" : ObjectId("59b8ea8ffdefef4e475a942c"), "name" : "murong", "gender" : 0 }
{ "_id" : ObjectId("59b8eae8fdefef4e475a942d"), "name" : "夏至", "gender" : 0 }

#删除多条记录
> db.stu.remove({gender:0})
WriteResult({ "nRemoved" : 2 })
> db.stu.find()
{ "_id" : "2017-09-13", "name" : "zheng", "gender" : 1 }
{ "_id" : ObjectId("59b8e84e1ae1a5ac6bd25d8c"), "name" : "立夏", "gender" : 1 }
{ "_id" : ObjectId("59b8e98ffdefef4e475a942b"), "name" : "zhenglll", "gender" : 1 }
> db.stu.remove({})
WriteResult({ "nRemoved" : 3 })
> db.stu.find()
> show collections
stu
> db.createCollection('sub',{capped:true,size:10})
{ "ok" : 1 }
> db.sub.insert({title:'linux',count:10})
WriteResult({ "nInserted" : 1 })
> db.sub.find()
{ "_id" : ObjectId("59b8ec37fdefef4e475a942e"), "title" : "linux", "count" : 10 }
> 
> #数据查询
2017-09-13T16:31:42.411+0800 E QUERY    [main] SyntaxError: illegal character @(shell):1:0
> db.stu.find()
> db.stu.insert({name:'立夏',gender:0})
WriteResult({ "nInserted" : 1 })
> db.stu.insert({name:'王子',gender:1})
WriteResult({ "nInserted" : 1 })
> db.stu.insert({name:'上官玉',gender:0})
WriteResult({ "nInserted" : 1 })
> db.stu.insert({name:'于萌',gender:0})
WriteResult({ "nInserted" : 1 })
#find:查询 fund({条件文档})
#fund()=fund({}):查询所有
> db.stu.find()
{ "_id" : ObjectId("59b8ed20fdefef4e475a942f"), "name" : "立夏", "gender" : 0 }
{ "_id" : ObjectId("59b8ed4efdefef4e475a9430"), "name" : "王子", "gender" : 1 }
{ "_id" : ObjectId("59b8eda8fdefef4e475a9431"), "name" : "上官玉", "gender" : 0 }
{ "_id" : ObjectId("59b8ededfdefef4e475a9432"), "name" : "于萌", "gender" : 0 }

#fundOne():查询,只返回第一个
> db.stu.findOne()
{
	"_id" : ObjectId("59b8ed20fdefef4e475a942f"),
	"name" : "立夏",
	"gender" : 0
}
> db.stu.find({gender:0})
{ "_id" : ObjectId("59b8ed20fdefef4e475a942f"), "name" : "立夏", "gender" : 0 }
{ "_id" : ObjectId("59b8eda8fdefef4e475a9431"), "name" : "上官玉", "gender" : 0 }
{ "_id" : ObjectId("59b8ededfdefef4e475a9432"), "name" : "于萌", "gender" : 0 }

#查询gender=1的记录
> db.stu.find({gender:1})
{ "_id" : ObjectId("59b8ed4efdefef4e475a9430"), "name" : "王子", "gender" : 1 }

#将结果格式化 pretty()
> db.stu.find({gender:0}).pretty()
{
	"_id" : ObjectId("59b8ed20fdefef4e475a942f"),
	"name" : "立夏",
	"gender" : 0
}
{
	"_id" : ObjectId("59b8eda8fdefef4e475a9431"),
	"name" : "上官玉",
	"gender" : 0
}
{
	"_id" : ObjectId("59b8ededfdefef4e475a9432"),
	"name" : "于萌",
	"gender" : 0
}

> #比较运算符$lt,$lte,$gt,$gte,$ne
2017-09-13T17:25:50.778+0800 E QUERY    [main] SyntaxError: illegal character @(shell):1:0
> db.stu.update({name:'于萌'},{$set:{age:15}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.stu.find()
{ "_id" : ObjectId("59b8ed20fdefef4e475a942f"), "name" : "立夏", "gender" : 0, "age" : 20 }
{ "_id" : ObjectId("59b8ed4efdefef4e475a9430"), "name" : "王子", "gender" : 1, "age" : 20 }
{ "_id" : ObjectId("59b8eda8fdefef4e475a9431"), "name" : "上官玉", "gender" : 0, "age" : 20 }
{ "_id" : ObjectId("59b8ededfdefef4e475a9432"), "name" : "于萌", "gender" : 0, "age" : 15 }

#$lt:小于 less than
> db.stu.find({age:{$lt:20}})
{ "_id" : ObjectId("59b8ededfdefef4e475a9432"), "name" : "于萌", "gender" : 0, "age" : 15 }

#$lte:小于等于 less than equal
> db.stu.find({age:{$lte:20}})
{ "_id" : ObjectId("59b8ed20fdefef4e475a942f"), "name" : "立夏", "gender" : 0, "age" : 20 }
{ "_id" : ObjectId("59b8ed4efdefef4e475a9430"), "name" : "王子", "gender" : 1, "age" : 20 }
{ "_id" : ObjectId("59b8eda8fdefef4e475a9431"), "name" : "上官玉", "gender" : 0, "age" : 20 }
{ "_id" : ObjectId("59b8ededfdefef4e475a9432"), "name" : "于萌", "gender" : 0, "age" : 15 }

#$gt:大于 grate than
> db.stu.find({age:{$gt:15}})
{ "_id" : ObjectId("59b8ed20fdefef4e475a942f"), "name" : "立夏", "gender" : 0, "age" : 20 }
{ "_id" : ObjectId("59b8ed4efdefef4e475a9430"), "name" : "王子", "gender" : 1, "age" : 20 }
{ "_id" : ObjectId("59b8eda8fdefef4e475a9431"), "name" : "上官玉", "gender" : 0, "age" : 20 }
#$gte:大于等于 grate than equal
> db.stu.find({age:{$gte:15}})
{ "_id" : ObjectId("59b8ed20fdefef4e475a942f"), "name" : "立夏", "gender" : 0, "age" : 20 }
{ "_id" : ObjectId("59b8ed4efdefef4e475a9430"), "name" : "王子", "gender" : 1, "age" : 20 }
{ "_id" : ObjectId("59b8eda8fdefef4e475a9431"), "name" : "上官玉", "gender" : 0, "age" : 20 }
{ "_id" : ObjectId("59b8ededfdefef4e475a9432"), "name" : "于萌", "gender" : 0, "age" : 15 }

#$ne:不等于 not equal
> db.stu.find({age:{$ne:15}})
{ "_id" : ObjectId("59b8ed20fdefef4e475a942f"), "name" : "立夏", "gender" : 0, "age" : 20 }
{ "_id" : ObjectId("59b8ed4efdefef4e475a9430"), "name" : "王子", "gender" : 1, "age" : 20 }
{ "_id" : ObjectId("59b8eda8fdefef4e475a9431"), "name" : "上官玉", "gender" : 0, "age" : 20 }
> db.stu.find({age:{$ne:20}})
{ "_id" : ObjectId("59b8ededfdefef4e475a9432"), "name" : "于萌", "gender" : 0, "age" : 15 }

> #逻辑运算符 $or
2017-09-13T17:30:26.254+0800 E QUERY    [main] SyntaxError: illegal character @(shell):1:0
> db.stu.find({gender:0,age:20})
{ "_id" : ObjectId("59b8ed20fdefef4e475a942f"), "name" : "立夏", "gender" : 0, "age" : 20 }
{ "_id" : ObjectId("59b8eda8fdefef4e475a9431"), "name" : "上官玉", "gender" : 0, "age" : 20 }
#选择gender=1或age=15的记录
> db.stu.find({$or:[{gender:1},{age:15}]})
{ "_id" : ObjectId("59b8ed4efdefef4e475a9430"), "name" : "王子", "gender" : 1, "age" : 20 }
{ "_id" : ObjectId("59b8ededfdefef4e475a9432"), "name" : "于萌", "gender" : 0, "age" : 15 }
> db.stu.find({$or:[{gender:1},{age:15}],name:'王子'})
{ "_id" : ObjectId("59b8ed4efdefef4e475a9430"), "name" : "王子", "gender" : 1, "age" : 20 }
> #范围运算符 $in,$nin
2017-09-13T17:32:56.900+0800 E QUERY    [main] SyntaxError: illegal character @(shell):1:0
#选择name=王子或立夏的记录
> db.stu.find({name:{$in:['王子','立夏']}})
{ "_id" : ObjectId("59b8ed20fdefef4e475a942f"), "name" : "立夏", "gender" : 0, "age" : 20 }
{ "_id" : ObjectId("59b8ed4efdefef4e475a9430"), "name" : "王子", "gender" : 1, "age" : 20 }

#正则表达式
#name以'立'开头的记录
> db.stu.find({name:/^立/})
{ "_id" : ObjectId("59b8ed20fdefef4e475a942f"), "name" : "立夏", "gender" : 0, "age" : 20 }
#name中包含'夏'的记录
> db.stu.find({name:/.*夏.*/})
{ "_id" : ObjectId("59b8ed20fdefef4e475a942f"), "name" : "立夏", "gender" : 0, "age" : 20 }
#$regex编写正则表达式
> db.stu.find({name:{$regex:'.*夏.*'}})
{ "_id" : ObjectId("59b8ed20fdefef4e475a942f"), "name" : "立夏", "gender" : 0, "age" : 20 }
> db.stu.insert({name:'夏至',gender:1,age:27})
WriteResult({ "nInserted" : 1 })
> db.stu.find({name:{$regex:'.*夏.*'}})
{ "_id" : ObjectId("59b8ed20fdefef4e475a942f"), "name" : "立夏", "gender" : 0, "age" : 20 }
{ "_id" : ObjectId("59b8fc98fdefef4e475a9433"), "name" : "夏至", "gender" : 1, "age" : 27 }

> #自定义查询
2017-09-13T17:39:14.423+0800 E QUERY    [main] SyntaxError: illegal character @(shell):1:0
#$where后面写一个函数,返回满足条件的数据
> db.stu.find({$where:function(){return this.age>20}})
{ "_id" : ObjectId("59b8fc98fdefef4e475a9433"), "name" : "夏至", "gender" : 1, "age" : 27 }

> #limit,skip
2017-09-13T17:40:51.182+0800 E QUERY    [main] SyntaxError: illegal character @(shell):1:0
#limit(number):查询numer条记录
> db.stu.find().limit(2)
{ "_id" : ObjectId("59b8ed20fdefef4e475a942f"), "name" : "立夏", "gender" : 0, "age" : 20 }
{ "_id" : ObjectId("59b8ed4efdefef4e475a9430"), "name" : "王子", "gender" : 1, "age" : 20 }
> db.stu.find()
{ "_id" : ObjectId("59b8ed20fdefef4e475a942f"), "name" : "立夏", "gender" : 0, "age" : 20 }
{ "_id" : ObjectId("59b8ed4efdefef4e475a9430"), "name" : "王子", "gender" : 1, "age" : 20 }
{ "_id" : ObjectId("59b8eda8fdefef4e475a9431"), "name" : "上官玉", "gender" : 0, "age" : 20 }
{ "_id" : ObjectId("59b8ededfdefef4e475a9432"), "name" : "于萌", "gender" : 0, "age" : 15 }
{ "_id" : ObjectId("59b8fc98fdefef4e475a9433"), "name" : "夏至", "gender" : 1, "age" : 27 }
> db.stu.find().limit(10)
{ "_id" : ObjectId("59b8ed20fdefef4e475a942f"), "name" : "立夏", "gender" : 0, "age" : 20 }
{ "_id" : ObjectId("59b8ed4efdefef4e475a9430"), "name" : "王子", "gender" : 1, "age" : 20 }
{ "_id" : ObjectId("59b8eda8fdefef4e475a9431"), "name" : "上官玉", "gender" : 0, "age" : 20 }
{ "_id" : ObjectId("59b8ededfdefef4e475a9432"), "name" : "于萌", "gender" : 0, "age" : 15 }
{ "_id" : ObjectId("59b8fc98fdefef4e475a9433"), "name" : "夏至", "gender" : 1, "age" : 27 }
#skip(number):跳过number条记录
#查询从第3条开始的记录
> db.stu.find().skip(2)
{ "_id" : ObjectId("59b8eda8fdefef4e475a9431"), "name" : "上官玉", "gender" : 0, "age" : 20 }
{ "_id" : ObjectId("59b8ededfdefef4e475a9432"), "name" : "于萌", "gender" : 0, "age" : 15 }
{ "_id" : ObjectId("59b8fc98fdefef4e475a9433"), "name" : "夏至", "gender" : 1, "age" : 27 }
#MongoDB 使用js解析,支持js语句
> for(i=1;i<10;i++){db.stu.insert({name:i})}
WriteResult({ "nInserted" : 1 })
> db.stu.find()
{ "_id" : ObjectId("59b8ed20fdefef4e475a942f"), "name" : "立夏", "gender" : 0, "age" : 20 }
{ "_id" : ObjectId("59b8ed4efdefef4e475a9430"), "name" : "王子", "gender" : 1, "age" : 20 }
{ "_id" : ObjectId("59b8eda8fdefef4e475a9431"), "name" : "上官玉", "gender" : 0, "age" : 20 }
{ "_id" : ObjectId("59b8ededfdefef4e475a9432"), "name" : "于萌", "gender" : 0, "age" : 15 }
{ "_id" : ObjectId("59b8fc98fdefef4e475a9433"), "name" : "夏至", "gender" : 1, "age" : 27 }
{ "_id" : ObjectId("59b8fdd2fdefef4e475a9434"), "name" : 1 }
{ "_id" : ObjectId("59b8fdd2fdefef4e475a9435"), "name" : 2 }
{ "_id" : ObjectId("59b8fdd2fdefef4e475a9436"), "name" : 3 }
{ "_id" : ObjectId("59b8fdd2fdefef4e475a9437"), "name" : 4 }
{ "_id" : ObjectId("59b8fdd2fdefef4e475a9438"), "name" : 5 }
{ "_id" : ObjectId("59b8fdd2fdefef4e475a9439"), "name" : 6 }
{ "_id" : ObjectId("59b8fdd2fdefef4e475a943a"), "name" : 7 }
{ "_id" : ObjectId("59b8fdd2fdefef4e475a943b"), "name" : 8 }
{ "_id" : ObjectId("59b8fdd2fdefef4e475a943c"), "name" : 9 }
#方法limit()和skip()可以一起使用,不分先后顺序
#跳过5条数据,再取4条数据
> db.stu.find().limit(4).skip(5)
{ "_id" : ObjectId("59b8fdd2fdefef4e475a9434"), "name" : 1 }
{ "_id" : ObjectId("59b8fdd2fdefef4e475a9435"), "name" : 2 }
{ "_id" : ObjectId("59b8fdd2fdefef4e475a9436"), "name" : 3 }
{ "_id" : ObjectId("59b8fdd2fdefef4e475a9437"), "name" : 4 }
> db.stu.find().skip(5).limit(4)
{ "_id" : ObjectId("59b8fdd2fdefef4e475a9434"), "name" : 1 }
{ "_id" : ObjectId("59b8fdd2fdefef4e475a9435"), "name" : 2 }
{ "_id" : ObjectId("59b8fdd2fdefef4e475a9436"), "name" : 3 }
{ "_id" : ObjectId("59b8fdd2fdefef4e475a9437"), "name" : 4 }
> #投影
2017-09-13T17:45:54.058+0800 E QUERY    [main] SyntaxError: illegal character @(shell):1:0
#find({},{字段名称:1,...}):设置0,不显示
> db.stu.find({},{_id:0})
{ "name" : "立夏", "gender" : 0, "age" : 20 }
{ "name" : "王子", "gender" : 1, "age" : 20 }
{ "name" : "上官玉", "gender" : 0, "age" : 20 }
{ "name" : "于萌", "gender" : 0, "age" : 15 }
{ "name" : "夏至", "gender" : 1, "age" : 27 }
{ "name" : 1 }
{ "name" : 2 }
{ "name" : 3 }
{ "name" : 4 }
{ "name" : 5 }
{ "name" : 6 }
{ "name" : 7 }
{ "name" : 8 }
{ "name" : 9 }
#设置1:显示,不设置不显示。
> db.stu.find({},{_id:0,age:1,gender:1})
{ "gender" : 0, "age" : 20 }
{ "gender" : 1, "age" : 20 }
{ "gender" : 0, "age" : 20 }
{ "gender" : 0, "age" : 15 }
{ "gender" : 1, "age" : 27 }
{  }
{  }
{  }
{  }
{  }
{  }
{  }
{  }
{  }
> db.stu.find({},{_id:0,age:0})
{ "name" : "立夏", "gender" : 0 }
{ "name" : "王子", "gender" : 1 }
{ "name" : "上官玉", "gender" : 0 }
{ "name" : "于萌", "gender" : 0 }
{ "name" : "夏至", "gender" : 1 }
{ "name" : 1 }
{ "name" : 2 }
{ "name" : 3 }
{ "name" : 4 }
{ "name" : 5 }
{ "name" : 6 }
{ "name" : 7 }
{ "name" : 8 }
{ "name" : 9 }
#sort({字段1:1/-1,...}):排序,1:升序,-1:降序
> db.stu.find({},{_id:0,age:1,name:1}).sort({name:-1})
{ "name" : "立夏", "age" : 20 }
{ "name" : "王子", "age" : 20 }
{ "name" : "夏至", "age" : 27 }
{ "name" : "于萌", "age" : 15 }
{ "name" : "上官玉", "age" : 20 }
{ "name" : 9 }
{ "name" : 8 }
{ "name" : 7 }
{ "name" : 6 }
{ "name" : 5 }
{ "name" : 4 }
{ "name" : 3 }
{ "name" : 2 }
{ "name" : 1 }
> db.stu.find({},{_id:0,age:1,name:1}).sort({name:1})
{ "name" : 1 }
{ "name" : 2 }
{ "name" : 3 }
{ "name" : 4 }
{ "name" : 5 }
{ "name" : 6 }
{ "name" : 7 }
{ "name" : 8 }
{ "name" : 9 }
{ "name" : "上官玉", "age" : 20 }
{ "name" : "于萌", "age" : 15 }
{ "name" : "夏至", "age" : 27 }
{ "name" : "王子", "age" : 20 }
{ "name" : "立夏", "age" : 20 }
#设置多个字段
> db.stu.find({},{_id:0,age:1,name:1}).sort({name:-1,age:1})
{ "name" : "立夏", "age" : 20 }
{ "name" : "王子", "age" : 20 }
{ "name" : "夏至", "age" : 27 }
{ "name" : "于萌", "age" : 15 }
{ "name" : "上官玉", "age" : 20 }
{ "name" : 9 }
{ "name" : 8 }
{ "name" : 7 }
{ "name" : 6 }
{ "name" : 5 }
{ "name" : 4 }
{ "name" : 3 }
{ "name" : 2 }
{ "name" : 1 }
#count():统计结果集中文档条数
> db.stu.find().count()
14
#count({条件文档})
> db.stu.count({name:{$lt:5}})
4
> #消除重复
2017-09-13T18:02:15.833+0800 E QUERY    [main] SyntaxError: illegal character @(shell):1:0
> db.stu.distinct('age')
[ 20, 15, 27 ]
> db.stu.distinct('age',{条件}).length
3
> 



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值