美文网首页
MongoDB使用

MongoDB使用

作者: 王哈哈就很棒 | 来源:发表于2020-08-14 15:40 被阅读0次

    Mongodb

    [toc]

    基本命令

    列出所有的数据库

    show databases
    show dbs
    

    进入数据库

    use 数据库名称
    

    查看当前数据库

    db
    

    列出当前数据库中的所有集合

    show collections
    

    清空集合

    db.<collection>.remove({})
    

    删除集合

    db.<collection>.drop()
    

    删除数据库

    db.dropDatabase()
    

    插入数据

    向集合中插入数据

    db.<collection>.insert({"name": "王哈哈", "age": 24})
    
    db.<collection>.insert([
        {"name": "张三", "age": 24},
        {"name": "李四", "age": 24},
        {"name": "王五", "age": 24},
        {"name": "马六", "age": 24}
    ])
    
    db.demo.insertOne({"name": "abc"})
    
    db.demo.insertMany([
        {"name": "wang1", "age": 24},
        {"name": "wang2", "age": 23}
    ])
    

    查询数据

    查询集合中的所有数据

    db.<collection>.find()
    

    查询集合中的单条数据

    db.<collection>.find_one()
    

    按条件查找数据

    db.<collection>.find({"name": "wanghaha", "age": 24})
    db.<collection>.findOne({"name": "wanghaha"})
    db.<collection>.findOne({"name": "wanghaha"}).name
    

    获取数据长度

    db.<collection>.find().count()
    db.<collection>.find().length()
    

    修改数据

    修改数据

    db.<collection>.update(查询条件, 新对象)
    

    update()默认情况下会使用新对象替换旧的对象, 默认只会修改一个

    $set 可以用来修改文档中的指定属性
    $unset 可以用来删除文档的指定属性

    修改一个符合条件的文档

    db.demo.update({"name": "hello"}, {
        $set: {"age": 23}
    })
    
    db.demo.updateOne(
        {"_id": ObjectId("5f34bcc44040779b0fc1c207")},
        {$set:{"name": "wanghaha"}}
    )
    

    删除符合条件的文档属性

    db.demo.updateOne(
        {"name": "马六"},
        {$unset:{"name": "马六"}}
    )
    

    修改多个符合条件的文档

    db.demo.update(
        {"name": "wanghaha"}, 
        {
            $set:{"sex": 2},
    
        },
        { 
            multi: true
        }
    )
    
    db.demo.updateMany({"name": "wanghaha"}, {$set:{"address": "china"}})
    

    替换符合条件的文档

    db.demo.replaceOne({"name": "wanghaha"}, {$set:{"age": 25}})
    

    删除数据

    删除一条文档

    db.<collection>.deleteOne({"name": "王哈哈"})
    
    db.<collection>.remove()
    

    删除一个或多个,第二个参数传递true则只会删除一个
    如果传递一个空对象则会清空所有数据

    删除多条符合条件的文档

    db.<collection>.deleteMany()
    

    高级操作

    文档中添加指定数据

    db.chart.update(
        {"_id":ObjectId("5f351285a4fc6a39518b5e84")},
        {$push: {"legend.data":"老王"}}
    )
    

    文档中数组李添加指定数据,如果已经存在则不会添加

    db.chart.update(
        {"_id":ObjectId("5f351285a4fc6a39518b5e84")},
        {$addToSet: {"legend.data":"老王"}}
    )
    

    删除多级结构数组中的一个

    db.chart.update(
        {"_id":ObjectId("5f351285a4fc6a39518b5e84")},
        {$pull: {"legend.data":"wanghaha"}}
    )
    

    删除多级结构数组中的最后一个

    db.chart.update(
        {"_id":ObjectId("5f351285a4fc6a39518b5e84")},
        {$pop : { "legend.data" : 1 }}
    )
    

    批量插入

    var arr = [];
    for(var i=0;i<20000;i++){
        arr.push({"num": i})
    }
    
    db.numbers.insert(arr)
    

    操作符

    条件操作符

    // 查询等于500的
    db.numbers.find({"num": 500})
    db.numbers.find({"num": {$eq: 500}})
    
    // 查询大于500的
    db.numbers.find({"num": {$gt: 500}})
    
    // 查询大于等于500的
    db.numbers.find({"num": {$gte: 500}})
    
    // 查询小于500的
    db.numbers.find({"num": {$lt: 500}})
    
    // 查询小于等于500的
    db.numbers.find({"num": {$lte: 500}})
    
    // 查询不等于500的
    db.numbers.find({"num": {$ne: 500}})
    
    // 查询大于40并且小于50
    db.numbers.find({"num": {$gt:40, $lt:50}})
    
    // 查询大于19990或小于10的
    db.numbers.find(
        {
            $or: [
                {
                    "num": {$gt: 19990}
                },
                {
                    "num": {$lt: 10}
                }
            ]
        }
    )
    
    // 查询财务部所有员工
    var deptno = db.dept.findOne({name: '财务部'}).deptno
    db.emp.find({deptno: deptno})
    

    限制长度

    // 查看前10条数据 limit 设置显示数据的上限
    db.numbers.find().limit(10)
    
    // 查看11到20条数据, skip()用于跳过指定数量的数据
    db.numbers.find().skip(10).limit(10)
    

    扩展(分页逻辑)

    /*分页逻辑
    每页显示10条
    1-10
    11-20
    21-30
    ...
    */
    skip((当前页码-1)*每页显示条数).limit(每页显示条数)
    

    自增自减操作

    // 所有人的age自增5
    db.test.updateMany({}, {$inc: {age: 5}})
    
    // 所有人的age自减10
    db.test.updateMany({}, {$inc: {age: -10}})
    

    排序

    升序

    // 1.表示升序
    db.<collection>.find().sort({'字段A', 1})
    

    降序

    // -1.表示降序
    db.<collection>.find().sort({'字段B', -1})
    

    多字段排序

    // 先按A字段升序排列,再按B字段降序排列
    db.<collection>.find().sort({'字段A': 1, '字段B': -1})
    

    投影

    只显示指定字段

    // 投影
    // 只显示指定字段, 1显示,0不显示
    db.<collection>.find({}, {field1: 1, _id: 0})
    

    语言操作库

    相关文章

      网友评论

          本文标题:MongoDB使用

          本文链接:https://www.haomeiwen.com/subject/vsggdktx.html