Mongodb简单使用

1. 学习资料

官网: Getting Started — MongoDB Manual

菜鸟: ​​​​​​MongoDB 教程 | 菜鸟教程

中文文档: MongoDB中文手册|官方文档中文版 - MongoDB-CN-Manual

2. 数据库操作

创建一个名为test的数据库

use test

只有数据库中有数据,才会真正创建一个数据库

删除数据库

db.dropDatabase()

3. collection操作

创建集合

db.createCollection("name")  name是要创建的集合名
db.<collection>.insert({name:"xxx"})  隐式创建集合,并插入数据

查看集合

show collections

 删除集合

db.xxx.drop()

 

4. 文档操作

4.1 新增

单个文档操作
db.集合.insert(json对象)    
            .insertOne 

多个文档操作
db.集合.insertMany([<json>,<json2>,<json3>])

             .insert

 db.shop.insertMany([{name:"a2",prop:"b"},{name:"c2"}])

4.2 查询

db.集合.find(<query>,[projection])

query:可选,查询条件,json对象
projection:可选,结果字段,json对象,类似于select name,age from xxx

db.xxx.find() 查询所有
db.xxx.find({})    查询所有
db.xxx.find({"name":"zhangsan"}) // 单查询条件
db.xxx.find({"name":"zhangsan","age":18}) // 多查询条件    相当于sql的and
db.xxx.find({$and:[{"name":"zhangsan"},{"age":18}]}) 同上
db.xxx.find({$or:[{"name":"zhangsan"},{"age":18}]})  多条件查询or
db.xxx.find({"name":/^zhang/}) 正则查询,可以相当于like

 db.shop.find({name:"a"})

 db.shop.find({$or:[{name:'a'},{prop:'b'}]})

name = 'a' 或者 prop = 'b'

a!=    1{a:{$ne:1}}
a>1    {a:{$gt:1}}
>=gte
<lt
<=lte
a is null{a:{$exists:false}}
inin
not innin
like '%xx%'{a:/xx/}

查询某种类型的字段type

查询类型使string的title字段

db.xxx.find({"title" : {$type : 2}})
或
db.xxx.find({"title" : {$type : 'string'}})

嵌套 查询子文档
{a:"zhangsan",b:18,c:{name:"张三",age:18}}
db.xxx.find({c.name:"zhang"})

数组查询
db.xxx.insert({name:"xx",cpi:["a","b"]})
db.xxx.find({cpu:"a"})
db.xxx.find({$or:[{cpu:"a"},{cpu:"b"}]})

数组对象
db.xxx.insert(name:"shouji",
brand:[{name:"aaa",price:1000},{name:"bbb",price:3000},{name:"ccc",price:2000}])
db.xxx.find({"brand.name":"aaa"})

"brand.name"的双引号不能少

投影查询(有利于索引的覆盖,和聚合操作)
db.xxx.find({name:"xx"},{name:0})  

不显示name字段,0表示不显示,1表示显示;

但是_id会默认显示,要是让_id不显示,要明确指定
db.xxx.find({name:"xx"},{name:0,_id:0})  
db.xxx.find({},{name:0,_id:0}) 

4.3 修改

db.xxx.updateOne({name:"xx"},{$set:{price:xx}})
db.xxx.updateMany({name:"xx"},{$set:{price:xx}})

update和updateOne,无论匹配多少条记录,只更新第一条

db.shop.updateOne({name:'a'},{$set:{prop:'new prop'}})

修改name='a'的记录,使prop='new prop'

  db.shop.updateMany({name:'a'},{$set:{prop:'new prop2'}})

 update对数组的操作:

$push增加一个对象到数组底部
$pushAll 

增加多个对象到数组底部

(3.4版本合并了push和pushall到push中)

$pop从数组底部删除一个对象
$pull从数组中删除某个对象
$pullAll
$addToset 添加对象到数组

 db.shop2.insert({name:"华为",type:["nove3","nove4","nove5","nove6","nove7"]})

 db.shop2.updateOne({name:'华为'},{$push:{type:"mate30"}})

在数据底部新增一个元素

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值