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();

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

  • 相关阅读:
    C#
    C#
    ssh学习笔记
    (已解决)Could not open '/var/lib/nova/mnt/*/volume-*': Permission denied
    RPCVersionCapError: Requested message version, 4.17 is incompatible. It needs to be equal in major version and less than or equal in minor version as the specified version cap 4.11.
    如何在linux下安装idea
    The system has no LUN copy license
    调整mysql数据库最大连接数
    mysql数据库编码问题
    cinder支持nfs快照
  • 原文地址:https://www.cnblogs.com/Allen-project/p/14793887.html
Copyright © 2011-2022 走看看