Fork me on GitHub

MongoDB基本语法

最近在学习MongoDB,总结了其中一部分语法,分享给大家:

# 查看数据库
show dbs

# 查看当前窗口所在的数据库
db

# 创建/进入数据库
use demo

# 查看集合
show collections

# 创建集合
db.createCollection("test")
db.test.insert({id: 1, name: 'snow'})

# 固定集合,size指定集合大小,单位为KB,max指定文档数量
db.createCollection("collectionName",{capped:true,size:10000,max:100})

# 删除数据库
db.dropDatabase()

# 删除集合
db.test.drop()

# 删除数据
db.test.remove({userId: 1})

# 删除age为7,name为snow的数据
db..test.remove({age:7,name:"snow"})

# 本意为将age为12的数据中的name更新为snow,但是实际效果是只是将age为12的满足条件数据的第一条整条数据覆盖为name:“snow”
db.test.update({age:12},{name:"snow"})

# 本意为将age为15的数据的name修改为snow,但是实际效果是只修改了查询到的第一条数据
db.test.update({age:15},{$set:{name:"snow"}})
db.test.update({userName: 'snow'}, {$set: {class.name: bbc}})

# 将age为15的数据的name修改为snow,总共4个参数,第3个参数1表示如果没有符合条件的记录是否新增一条记录,1表示新增,0表示不新增,第四个参数表示有多条数据符合筛选条件的话是否全部更改,默认为0只改第一条,改为1后表示全部更改
db.test.update({age:15},{$set:{name:"snow"}},1,1)

# 如果不存在age为21的数据则增加一条,增加的数据为{name:”snow”}
db.test.update({age:21},{$set:{name:"snow"}},1,1)

# $inc表示使某个键值加减指定的数值,此处表示将name为snow的数据的age字段的值减2
db.test.update({age:12},{name:"snow"},{$inc:{age:-2}},1,1)

# $unset用来删除某个键,此处表示删除name为snow的数据的age字段
db.test.update({age:12},{name:"snow"},{$unset:{age:1}},0,1)

# 查询所有数据
db.test.find()

# 查询姓名为snow的数据
db.test.find({userName: 'snow'})

# 查询年龄大于30
db.test.find({userAge: {$gt: 30}})

# 查询年龄大于等于30并升序排列
db.test.find({userAge: {$gte: 30}}).sort({age:1})

# 查询年龄小于30
db.test.find({userAge: {$lt: 30}})

# 查询年龄小于等于30并降序排列
db.test.find({userAge: {$lte: 30}}).sort({age:-1})

# 查询年龄等于30
db.test.find({userAge: {$eq: 30}})

# 查询所有的数据,返回age字段
db.test.find({},{age:1})

# 查询age为18,name为snow的数据,返回name和age字段
db.test.find({age:18,name:"snow"},{name:1,age:1})

# (包含...并且包含...)查询所有price包含1和2的数据
db.test.find({price:{$all:[1,2]}})

# (包含...或者包含...)查询price中含有1或者2的数据
db.test.find({price:{$in:[1,2]}})

# (不包含...并且不包含...)查询price中不含有1并且不含有2的数据
db.test.find({price:{$nin:[1,2]}})

# (...或者...)查询name为snow或者价格包含3的数据
db.test.find({$or:[{name:"snow"},{price:{$in:[3]}}]})

# (既不也不)查询name不为snow或者name不为sn的数据
db.test.find({$nor:[{name:"snow"},{name:"sn"}]})

# (分页)查询从0条开始,查询10条,skip()方法默认参数为 0 ,表示跳过的条数
db.test.find().skip(0).limit(10)

# 按照年龄升序排序,为-1的话表示降序排序
db.test.find().sort({age:1})

# 查询存在hight字段的数据
db.test.find({hight:{$exists:1}})

# 查询第一条数据
db.test.findOne()

# 关闭数据库
use admin
db.shutdownServer()