MongoDB基础语句

数据库操作

查看当前数据库

db

查看所有数据库

show databases

切换数据库(如果没有会自动创建)

use dbname

删除当前数据库(删除数据库所有集合)

db.dropDatabase()
集合的操作

查看当前数据的所有集合(相当于表)

show collections

创建新的集合

db.createCollection("Emp",{capped:true,size:6124800,max:10000})   

删除集合

db.Emp.drop()

查看集合的详情

db.Emp.find()

格式化查看

db.Emp.find().pretty()
向集合插入数据
document={name:'zhangsan',age:'10',sex:'male'}  --插入数据时,可以先创建一个文档
db.Emp.insert(document)
db.Emp.save(document) //save只能加一条数据
***注意点***
save吧document的_id固定下来
使用save操作某个document后,insert方法就不可使用了。否则可以一直使用insert

插入一条数据

db.Emp.insert({name:'zhangsan'});
db.Emp.insertOne({"a":3})

插入多条数据

db.Emp.insertMany([{name:'sss'},{name:'zz',age:'11'}])//不加Many也可
集合数据的更新

更新一条数据

db.Emp.update({'name':'chen'},{$set:{'name':'xiaochen'}}) //默认改第一条 更新一条set可以省略
db.Emp.update({_id:ObjectId("5d399db3cd6648e542dac1aa”),’name':'chen'},{$set:{'name':'xiaochen'}})

注意

造成该问题的原因是集合被设置成了 固定集合 。固定集合的数据不能被修改(只能改成相同长度的数据)。只能查找-删除-再插入

  "errmsg" : "Cannot change the size of a document in a capped collection: 48 != 51"

更新多条数据

db.Emp.update({'name':'xiaochen'},{$set:{'name':'xiaolan'}},{multi:true}) 
//可以一次更新多条 ,这时要将multi设置成true
db.Emp.updateMany({'name':'xiaochen'},{$set:{'name':'xiaolan'}}) 
集合数据查询
$gt : > 
$lt : < 
$gte: >= 
$lte: <= 
$ne : !=、$amp;$in : in 
$nin: not in 
$all: all 
$not: 反匹配(1.3.3及以上版本)
逻辑与或
> db.user.find({"name":"xiaolan"})

> db.user.find({"name":"xiaolan","hobby":["song1","writebook"]})  --- 直接写多个,中间以,隔开
> db.user.find({$or:[{"name":"xiaolan"},{"age":"10"}] })   --或:以$or开头,后面跟的是[]  


> db.user.distinct('name');   --去掉重复数据
> db.user.find({name:/ao/})   --模糊查询    注意:必须有{}
> db.user.find({name:/^ao/})  --模糊查询    以ao开头
> db.user.find({name:/ao$/})  --模糊查询    以ao结尾
> db.user.find({},{"name":1,_id:0}).limit(2)    --查询前两条记录,只显示name    注意:find后面第一个空的{}必须有   name后面的1代表显示 ,0是不显示
--_id:0 表示不显示_id       limit(2)  表示查询2条
如果存在需要查询的列就输出,否则就不输出

> db.user.find({},{"name":1,_id:0}).limit(3).skip(1)   --跳过前几条,查询后面的3条
 
> db.user.find({},{"age":1,_id:2}).limit(2).skip(1)  --显示age,同时显示_id
 
> db.user.find({},{"age":1,_id:0}).limit(2).skip(1)
 
> db.user.find({},{"age":1}).limit(2).skip(1)  --默认显示_id
 
> db.user.find({},{"age":0,_id:0}).limit(2).skip(1)   ---"age":0  表示显示除age以外的内容
集合数据的删除
db.user.remove({});#删除所有数据
db.user.remove({"sex":"女"});#按照条件删除
db.user.remove({"name":"张无忌"},2);#删除几条
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值