zoukankan      html  css  js  c++  java
  • 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();

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

  • 相关阅读:
    最少乘法次数 http://acm.nyist.net/JudgeOnline/problem.php?pid=46
    取石子(一)http://acm.nyist.net/JudgeOnline/problem.php?pid=23
    数的长度http://acm.nyist.net/JudgeOnline/problem.php?pid=69
    Dinner http://acm.nyist.net/JudgeOnline/problem.php?pid=218
    FatMouse' Trade http://acm.hdu.edu.cn/showproblem.php?pid=1009
    Elevator http://acm.hdu.edu.cn/showproblem.php?pid=1008
    Number Sequence http://acm.hdu.edu.cn/showproblem.php?pid=1005
    阶乘之和http://acm.nyist.net/JudgeOnline/problem.php?pid=91
    对象模型学习总结 (二) . 关于继承和多态
    cubieboard 配置WIFI
  • 原文地址:https://www.cnblogs.com/Allen-project/p/14793887.html
Copyright © 2011-2022 走看看