cosmo

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  • 插入  
--插入单数据
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}})

 

查询条件对照表

SQL MQL
 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()

 

  

  

 

posted on 2022-07-13 19:17  【cosmo】  阅读(120)  评论(0编辑  收藏  举报