• 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})
        }

  • 相关阅读:
    Mybatis-generator使用和扩展
    mybatis like 查询
    mybatis IF判断的坑
    Spring 配置JNDI数据源
    MyBatis Generator配置文件
    Dynamic Web Module to 3.0 报错
    MAC下配置MAVEN环境变量配置
    ORA-02298: 无法验证 (PNET.POST_CLOB_FK)
    oracle pctfree和pctused详解
    关于error:Cannot assign to 'self' outside of a method in the init family
  • 原文地址:https://www.cnblogs.com/Maskisland/p/8428218.html
Copyright © 2020-2023  润新知