MongoDB 增删改查 简单操作

  • 插入  
--插入单数据
db.集合名称.insertOne(JSON对象)
--插入多条数据
db.集合名称.insertMany([JSON 1],[JSON 2],...[JSON n])
--示例:
db.name.insertOne({name:"小明"});
db.name.insertMany([{name:"张三"},{name:"李四"},{name:"王五"}]);
  • 查询

  find 是MongDB 中查询数据的基本指令,相当于SQL中的SELECT

  find返回的是游标

--查询所有
db.集合名称.find()
--查询指定数据 查询条件
db.集合名称.find(JSON)
--组合条件查询
db.集合名称.find({key:value,key:value})
--and查询
db.集合名称.find({$and:[{key:value},{key:value}]})
--or
db.集合名称.find({$or:[{key:value},{key:value}]})
--正则查询
db.集合名称.find({key:/^B/})
--使用find搜索子文档
--先插入数据 
db.fruit.insertOne({ 
  name:"马六", 
  from:{ 
    country:"中国", province:"北京" 
  } 
}) 
--查询 
db.fruit.find({"from.country" : "中国"}) 
--查询子文档需要写子文档路径 写法不正确
db.fruit.find({"from" : {country : "中国"}})
--示例:
db.name.find();
db.name.find({name:"张三"});
--find支持对数组中元素搜索
--插入数据
db.student.insert([
        {"name" : "张三",course: ["语文","数学"]},
        {"name" : "李四",course: ["语文","英语"]},
])
--查询
db.student.find({course: "语文"})
sb.student.find( {$or: [{course: "语文"}, {course: "英语"}]} )
--find搜索数组中对象
--插入数据
db.classs.insertOne({
        "title" : "高三一班",
        "students" : [
                {"name" : "李四", "age" : 18, "sex" :"男"},
                {"name" : "王五", "age" : 19, "sex" :"男"},
                {"name" : "李华", "age" : 18, "sex" :"女"}                
        ]
})
--查找年龄是18记录
db.classs.find({"students.age" :18})
--查询对象多个字段
db.getCollection('classs').find({
        "students.age":18,
        "students.sex":"女"
})

db.getCollection('classs').find({
        "students":{
                $eleMatch:{"age":18,"sex":"男"}
        }
})

--控制find返回字段
--find可以指定只返回指定的字段
-- _id字段必须明确指明不返回,否则默认返回
--再MongoDB中称为投影(projection)
--                         不返回id  返回title
db.movies.find({"age",18),{"_id":0,title:1}})

查询条件对照表

SQLMQL
 a = 1 {a:1}
 a <> 1 {a:{$ne : 1}}
 a > 1 {a:{$gt : 1}}
 a ≥ 1 {a:{$gte : 1}}
 a < 1 {a:{$lt : 1}}
 a ≤ 1 {a:{$lte : 1}}
 a = 1 and b =1 {a : 1,b : 1} 或 {$and: [{a : 1},{b : 1}]}
 a = 1 OR b = 1 {$or: [{a : 1},{b : 1}]}
 a IS BULL {a: {$exists: false}}
 a IN (1,2,3) {a: {$in: [1,2,3]}}

 查询逻辑对照表

$lt存在并小于
$lte存在并小于等于
$gt存在并大于
$gte存在并大于等于
$ne不存在或存在但不等于
$in存在并在指定数组中
$nin不存在或不在指定数组中
$or匹配两个或多个条件中的一个
$and匹配全部条件
  • 修改
db.集合名称.update(<查询条件>,<更新字段>)

  使用updateOne表示无论条件匹配多少条记录 始终至更新第一条

  使用updateMany 表示条件匹配多少条就更新多头条

  updateOne/updateMany 要更新条件部分必须具有以下之一,否则会报错

    $set/$unset

    $push/$pushAll/$pop

    $pull/$pullAll

    $addToSet

  update更新数组

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

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

    $pop 从数组底部删除一个对象

    $pull 如果匹配指定的值,从数组中删除相应的对象

    $pullAll 如果匹配任意的值,从数组中删除相应对象

    $addToSet 如果不存在则增加一个值到数组

  • 删除
--删除a等于1
db.集合名称.remove({a:1})
--删除a小于5
db.集合名称.remove({a:{$le:5}})
--删除所有记录
db.集合名称.remove({})
--不传参数会报错
db.集合名称.remove()
  • drop
--删除一个集合 集合中的数据会被全部删除、索引也会被删除
db.集合名称.drop()
--删除数据库 数据库相应文件 磁盘空间被释放
db.dropDatabase() 
--删除数据库
db.colToBeDropped.drop()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值