美文网首页
linux操作mongodb

linux操作mongodb

作者: 我的楼兰0909 | 来源:发表于2018-12-14 15:18 被阅读0次
    show dbs 查看数据库
    show collections 查看集合
    db.createCollectin 创建集合
    db.collection.inset() 插入数据
    
    //ordered:true表示顺序插入,ordered:false无序插入
    info = [
       {uid:11,name:"林华章",position:"php engineer",age:"20"},
       {uid:12,name:"张梦雪",position:"web engineer"}
    ]
    db.colleagues.insert(info,{ordered: false})
    或
    db.colleagues.insert([
       {uid:11,name:"林华章",position:"php engineer",age:"20"},
       {uid:12,name:"张梦雪",position:"web engineer"}
    ],
    {ordered: false}
    )
    BulkWriteResult({
        "writeErrors" : [ ],
        "writeConcernErrors" : [ ],
        "nInserted" : 2,
        "nUpserted" : 0,
        "nMatched" : 0,
        "nModified" : 0,
        "nRemoved" : 0,
        "upserted" : [ ]
    })
     
    db.colleagues.find()
    { "_id" : ObjectId("5bc416339dc6d604d715a0d4"), "name" : "陈莎", "age2" : 23 }
    { "_id" : ObjectId("5bc416339dc6d604d715a0d3"), "user_id" : 2, "name" : "侯4", "position" : "web engineer", "age" : 15, "real_name" : "侯4" }
    { "_id" : ObjectId("5bc43a5f6ed4673ac21d9eb5"), "name" : "陈莎", "age" : 23 }
    { "_id" : ObjectId("5bc43d2150a837720e2c03b0"), "uid" : 11, "name" : "林华章", "position" : "php engineer", "age" : "20" }
    { "_id" : ObjectId("5bc43d2150a837720e2c03b1"), "uid" : 12, "name" : "张梦雪", "position" : "web engineer" }
    db.collection.insertOne({ item: "card", qty: 15 }) 插入一条
    db.collection.find() 查找数据
    
    db.colleagues.find({"name":"林章"})//查询条件为name=林章
    db.colleagues.find({},{"name":1,"age":1,"_id":0}) 只查询name和age字段,_id则不显示
     
    db.collection.findOne() 查询单条
    
    db.collection.update() 修改数据
    
    db.colleagues.update({"name":"陈发6"},{"name":"陈发","age2":23},{multi:true,upsert:false})
    WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
    //如果条件不成立,则新增一条数据,如果需要不新增则可设置upsert:false
    //multi默认为true,表示满足条件就全部修改,false表示满足条件只修改一条
     
    db.collection.remove 删除数据
    
    db.colleagues.remove({"name":"李刚"})
    WriteResult({ "nRemoved" : 1 })
    添加索引:
    
    //1是按升序创建 -1是按降序创建
    db.colleagues.ensureIndex({"name":1,uid:-1}) 
     
    //创建索引并命名
    db.user.ensureIndex({"name":1},{"name":"索引名字"});
     
    //重建索引
    db.sites.reIndex()
     
    //查看索引
    db.system.indexes.find()//查看所有索引信息
    db.coll.totalIndexSize查看集合索引的总大小
    db.coll.getIndexes()方法查看集合的所有索引
     
    //删除索引
    db.collection_name.dropIndexes("INDEX-NAME");
    db.collection_name.dropIndexes()//删除集合中的所有索引
     
     
     
    修改器和查询条件:
    
    $set 如果一个键不存在,则创建它
     
    $inc 增加一个键的值,如果不存在,则创建它
     
    $push 向已有数组添加一个元素,没有就创建一个
     
    $upsert 如果没有符合条件的文档,以此为条件创建一个新的文档
     
    $ 数组定位的下标
     
    $lt <
    $lte <=
    $gt >
    $gte >=
    $ne !=
    $in in查询
    $or or查询
    $nin 与$in相反
    $not 元条件句,可以用于任何条件之上
    db.students.find("age":{"$gte":18,"$lte":30})//查询年龄在18-30的数据
    db.colleagues.find({"age":{"$in":[15,20]}},{"_id":0})//查询年龄等于15和20的数据
    db.colleagues.find({$or:[{"uid":11},{"age":15}]})//满足多个条件中的一个
    db.food.find({number:{$all:[4,8]}})//查询food集合中所有number字段包含4,8的数据
    { "_id" : ObjectId("5bc5b407d87ae529fa3aee72"), "number" : [ 4, 5, 8, 6 ] }
    { "_id" : ObjectId("5bc5b47bd87ae529fa3aee73"), "number" : [ 4, 8, 6, 2 ] }
    db.food.find({mumber:{$size:3}})//查询集合中数组大小为3的记录
    db.inventory.find( { price: { $not: { $gt: 1.99 } } } )//$gt再取反
     
    $where查询:
    > db.colleagues.find()
    { "_id" : ObjectId("5bc416339dc6d604d715a0d4"), "name" : "陈发", "age2" : 23 }
    { "_id" : ObjectId("5bc43a5f6ed4673ac21d9eb5"), "name" : "陈发", "age" : 23 }
    { "_id" : ObjectId("5bc43d2150a837720e2c03b0"), "uid" : 11, "name" : "林章", "position" : "php engineer", "age" : "20" }
    { "_id" : ObjectId("5bc43d2150a837720e2c03b1"), "uid" : 12, "name" : "张雪", "position" : "web engineer" }
     
    > db.colleagues.find({$where:function(){
    ... if(this.age>20){
    ...     return true;
    ... }else{
    ...     return false;
    ... }
    ... }})
    { "_id" : ObjectId("5bc43a5f6ed4673ac21d9eb5"), "name" : "陈发", "age" : 23 }
     
    mongodb提供同步和异步两种形式保存数据,如果一定要等到数据成功写入再返回,那么需要开启getlastError.
    
    2.6之后版本默认开启了,不需要设置
    
    分页:
    db.colleagues.find().sort({'date':-1}).skip(($page-1)*$limit).limit(100);
    

    相关文章

      网友评论

          本文标题:linux操作mongodb

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