zoukankan      html  css  js  c++  java
  • Mongodb 操作

    数据库操作:
    show dbs;#查看数据库
    use test;#如果没有就创建一个
    db;#查看当前数据库
    db.dropDatabase();#删除数据库

    数据操作

    创建集合 db.stu.insert({})  没有自动创建

    更新

    db.student.update({"name":"张三"},{"name":"张三丰"});#如果有多条语句,只修改第一条,会覆盖原有数据
    db.student.update({"22":"女"},{"name":"张三丰"});
    db.student.update({"name":"张三"},{$set:{"name":"张无忌"}});#只想改某个key的value使用set
    db.student.update({"name":"王五"},{$set:{"name":"张无忌"}},{multi:true});#把所有的记录都改了

    参数说明:

    • query : update的查询条件,类似sql update查询内where后面的。
    • update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
    • upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
    • multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
    • writeConcern :可选,抛出异常的级别。

    删除

    db.student.remove({});#删除所有数据
    db.student.remove({"22":"女"});#按照条件删除

    查看

    db.stu.find()
    db.stu.find({key1:value1,key2:value2}) #AND逻辑

    db.stu.find({$or:[{key1:value1},{key2,value2}]})

    db.stu.find({$or:[{name:"fakered"},{"age":{$gt:20}}]}) #OR逻辑

    db.stu.find(key1:value1) #等于

    db.stu.find({"age":{$gte:20}}) #大于等于

    db.stu.find({"age":{$lte:20}}) #小于等于

    db.stu.find({"age":{$ne:50}}) #不等于

    type 操作符

    do.stu.find({"title":{$type:2}}) 获取title为string的数据

    skip,limit

    先skip再limit

    数据量大时尽量避免使用skip

    b.test.sort({"amount":1}).skip(100000).limit(10)  //183ms
    db.test.find({amount:{$gt:2399927}}).sort({"amount":1}).limit(10)  //53ms


    排序
    db.stu.find().sort({age:1}) 正序
    db.stu.find().sort({age:-1}) 倒序

    索引
    db.COLLECTION_NAME.ensureIndex(keys[,options])

    查看索引
    db.COLLECTION_NAME.getIndexes()
    db.COLLECTION_NAME.totalIndexSize()查看索引大小
    db.system.indexes.find() 查看所有索引
    db.COLLECTION_NAME.dropIndex("INDEX-NAME") 删除索引


    聚合函数
    db.stu.aggregate([{$group:{_id:null,max:{$max:"$age"}}}]) #求最大值
    db.stu.aggregate([{$group:{_id:null,sum:{$sum:"$age"}}}]) #求总和

    
    



    python 操作mongodb
    client=MongoClient("mongodb://localhost:27017")
    db=client.saku
    sub=db.stu


    循环插入数据
    for(int i=0;i<1000;i++)
    {db.test.insert({name:"faker"+i,age:i})
        }

  • 相关阅读:
    swift 第十四课 可视化view: @IBDesignable 、@IBInspectable
    swift 第十三课 GCD 的介绍和使用
    swift 第十二课 as 的使用方法
    swift 第十一课 结构体定义model类
    swift 第十课 cocopod 网络请求 Alamofire
    swift 第九课 用tableview 做一个下拉菜单Menu
    swift 第八课 CollectView的 添加 footerView 、headerView
    swift 第七课 xib 约束的优先级
    swift 第六课 scrollview xib 的使用
    swift 第五课 定义model类 和 导航栏隐藏返回标题
  • 原文地址:https://www.cnblogs.com/Maskisland/p/8428218.html
Copyright © 2011-2022 走看看