MongoDB增删改查(操作)

一,(增)插入文档
1.显示当前所有的数据库
show dbs
show databases


2.进入到指定的数据库中
use 数据名


3.显示当前所处的数据库
db


4.显示数据中所有的集合
show collections


4.创建文档
当我们创建文档时,如果所在的集合和数据库不存在,会自动创建数据库集合
db.emps.insert({name:"tom",dept:"it",salry:"5000"})



5.写入数据
db.emps.insert({name:"tom",dept:"it",salry:"5000"})//插入单条
db.emps.insert([
{name:"tom",dept:"it",salry:"5000"},
{name:"tom",dept:"it",salry:"6000"}
])//插入多条


二,(查)文档的查询find/findOne
1.查看集合里的文档
db.emps.find();

2.单条件查询
db.emps.find({_id:'001'});//查询当前文档列表id为001的的数据

3.多条件查询
db.emps.find({title:'001',type:true});//查询当前文档列表title=001的并且type=true的数据

4.范围查询
db.user.find({name:{$in:["it","tom"]}});//查找当前文档列表name=it和name=tom的数据

5.大于范围查询
db.user.find({name:"tom",salry:{$gt:"4000"}});//查找当前文档列表所有name=tom且salry>(大于)4000的数据
db.user.find({num:{$gt:40}})//查找num大于40的所有数据

6.小于范围查询
db.user.find({name:"tom",salry:{$lt:"4000"}});//查找当前文档列表所有name=tom且salry<(小于)4000的数据
db.user.find({num:{$lt:40}})//查找num小于40的所有数据

7.大于等于范围查询
db.user.find({name:"tom",salry:{$gte:"4000"}});//查找当前文档列表所有name=tom且salry>=(大于等于)4000的数据

8.小于等于范围查询
db.user.find({name:"tom",salry:{$lte:"4000"}});//查找当前文档列表所有name=tom且salry<=(小于等于)4000的数据
db.user.find({num:{$let:40}})//查找num小于等于40的所有数据

9.大于多少小于多少
db.user.find({num:{$gt:40,$lt:100}})//查找num大于40小于100的所有数据

10.查询集合中前10条数据
db.user.find().limit(10)//查找前10条数据
db.user.find().skip(10).limit(10)//skip页码,limit条数 这里查询出第11条数据到20条数据
db.user.find().skip(20).limit(10)//skip页码,limit条数 这里查询出第21条数据到30条数据

9.或者范围查询
db.emps.find({$or:[{dept:"it"},dept:"HR"]});//查询当前文档列表dept=it或者dept=HR的数据

10.字符串条件范围搜索查询
db.emps.find({name:/^t/});//查询当前文档列表所有name=t开头的数据查询出来

11.统计符合条件的文档数量
db.emps.find({_id:'001'}).count();//返回值:2条 

12.统计集合里文档的数量
db.emps.find().count();

13.内嵌文档查找
db.emps.find({"hobby.movies":"hero"})//查找hobby.movies = hero的文档

14.findOne
db.emps.findOne({"hobby":"hero"})//查找单条返回 并且返回对象


三,(改/增)文档更新update修改(添加)/unset删除
1.更新某条数据的整个文档(默认只能修改找到的第一个)
db.emps.update({_id:"001"},{salary:"6000"})//找到_id=001 修改salary字段值为6000,这种方式会删除其他无关字段

2.更新某条数据的具体的某个字段属性(如果这个属性不存在就会“添加”这个属性字段,存在就修改,默认只能修改找到的第一个)
db.emps.update({_id:"001"},{$set:{salary:"6000"}})//找到_id=001 修改salary字段值为6000,这种方式只会修改salary的字段

3.更新符合条件的多条数据(修改符合条件的所有文档)
db.emps.updateMany({$or:[{dept:"it"},{dept:"hr"}]},{$set:{salary:"6000"}})//匹配当前列表里所有dept=it或者dept=hr的值 找到并且修改salary字段值为6000

4.更新当前集合里所有文档
db.emps.updateMany({},{$set:{salary:"6000"}})//匹配当前列表里所有文档 如果有salary就更新,没有就添加

5.根据条件删除文档中的某条数据(这种方式只会默认删除第一条)
db.emps.update({_id:"001"},{$unset:{salary:"6000"}})//salary字段值可以随意写

6.添加内嵌文档数组对象
db.emps.updateMany(
{name:"t2"},
{$set:{address:[{province:"henan",city:"xinyang"}]}},
{upsert:true}
)

7.添加内嵌文档对象
db.emps.updateMany(
{name:"t1"},
{$set:{address:{province:"henan",city:"xinyang"}}},
{upsert:true}
)

8.根据条件筛选对内嵌文档的添加
db.emps.update({name:"t1"},{$push:{"hobby.movies":"999"}})
db.emps.update({name:"t3"},{$push:{"address":{"name":"ppp","native":"url"}}})

9.添加文档
db.emps.update({name:"t3"},{$addToSet:{"address":{"name":"ppp","native":"url"}}})//想文档添加新的属性,但是如果已经存在就不会添加

10.循环添加数据
var arr = []
for(var i=0;i<20000;i++){
    arr.push({num:i})
}
  db.emps.insert(arr )




四,(删)文档删除
1.根据id 删除一条数据
db.emps.remove({_id:"001"})//删除emps文档集合里 _id=001的这条数据

2.删除满足条件的所有数据
db.emps.remove({type:"1"})//删除emps文档集合里 所有type=1

3.删除满足条件匹配到的第一条数据
db.emps.remove({type:"1"},{justOne:true})//删除emps文档集合里 匹配到的第一个type=1的数据并且删除

4.删除一个集合里所有文档数据
db.emps.remove({})//这里必须要传一个空对象

5.删除整个集合
db.集合名.drop();

6.删除当前数据库
db.dropDatabase();

 我是马丁的车夫,欢迎转发收藏!

原文地址:https://www.cnblogs.com/Allen-project/p/14793887.html