mogodb

作者: 小袋鼠cf | 来源:发表于2018-12-28 13:58 被阅读0次

    use dbname :切换和创建数据库

    show dbs :查看所有数据库

    db.stats():查看当前数据库信息

    db.createCollection("stu"):创建集合(不固定大小),先切数据库

    db.createCollection("stu",{capped:True,size:10,max:100}):创建固定大小的集合,

    db.dropDatabase():删除数据库,删哪个先切换到哪个数据库下

    show collections:查看当前数据库所有集合

    db.集合名称.drop():删除集合

    创建固定大小的集合db.createCollection("集合名称")
    固定大小的集合(当集合存满时,新的数据会覆盖之前的数据)
    db.createCollection("集合名称,
    {capped:True,
    size:10,指集合大小(单位是字节),
    max:100指定集合在存储的最大文档数
    }
    )

    size的优先级更高

    插入数据:
    插入单条数据
    db.student.insert({name:'王霞',age:18,gender:1,})
    插入多条数据
    db.student.insert([{name:'xiaoli',age:19,gender:0},{name:'xiaoqi',age:18,gender:1}])
    查看集合中的数据
    db.student.find()

    插入数据是如果没有指定id,会自动生成一个,也可以自己指定。ID是一个主键也是一个索引
    

    更新数据:
    更新前:
    { "_id" : ObjectId("5c2476f6173b783193b0b16c"), "name" : "xiaoqi", "age" : 18, "gender" : 1 }
    db.student.update({name:'xiaoqi'},{name:'xiaodong'},{upsert :可选,这个参数的意思是,如果不存在update 的记录,是否插入objNew,true为插入,默认是false,
    multi:可选,mongodb 默认是false,
    只更新找到的第 一条记录,如果这个参数为true,就把按条件查出来多条记录 全部更新。
    })全文档更新,ID不变;

    更新后:
    { "_id" : ObjectId("5c2476f6173b783193b0b16c"), "name" : "xiaodong" }
    
    更新前:
    { "_id" : ObjectId("5c2476f6173b783193b0b16b"), "name" : "xiaoli", "age" : 19, "gender" : 0 }
    db.student.update({name:'xiaoli'},{$set:{age:3}})局部更新
     更新后:
    { "_id" : ObjectId("5c2476f6173b783193b0b16b"), "name" : "xiaoli", "age" : 3, "gender" : 0 }
    

    save:会根据_id这个字段取集合下查找,如果_id存在,则进行全文档更新,如果不_id存在, 则插入一条新数据
    db.集合名称.save(
    {id:'','key':'value',....}
    )

    删除

    db.集合名称.remove({key:'value'},{justOne:true})
    db.集合名称.drop
    db.dropDatabase()

    查询

    db.集合名称.find()查询所有
    db.集合名称.find({'key':'value'})
    db.集合名称.findOne({'key':'value'})查询一条

    sudo service mongodb start

    lt 小于lte 小于等于
    gt 大于gte大于等于

    多条件查询

    查询时间大于100并且演员是李连杰
    db.集合名称.find(
    {
    'times':{$gt:100},
    'actors':'李连杰',
    }
    )

    查询时间大于100或者演员是李连杰

    db.集合名称.find(
    {
    or:[{times:{gt:100}},{actor:'李连杰'}]
    })

    查询时间大于100或者演员是李连杰,并且标题为少年方世玉的文档

    db.集合名称.find(
    {
    or:[{times:{gt:100}},{actor:'李连杰'}],
    title:'少年方世玉'
    })

    范围运算符

    db.movie.find({actors:/^李/}) db.movie.find({actors:{$regex:'李'}}) 查询以李开头的演员

    $type:只返回符合数据类型的文档

    db.集合名称.find({
    'key':{$type:'数据类型'}
    })

    limit:限制返回

    db.集合名称.find().limit(3) 查询前3条
    db.集合名称.find().skip(2).limit(3) 跳过前2条,查询3条

    sort:排序 1:升序 -1:降序

    db.集合名称.find().sort({'times':-1}) 以时间降序查询
    db.集合名称.find().sort({'times':1}) 以时间升序查询

    去重

    db.集合名称.distinct(
    'actors',{times:{$gte:90}}
    )

    project:投影 1显示 0不显示 查询想要的字段

    db.集合名称.find({},{'title':1})

    count:统计

    db.movie.count() 查询集合中有几条文档
    db.集合名称.find().count()
    db.movie.count({actors:'李连杰'})
    db.集合名称.find({actors:'李连杰'}).count()

    相关文章

      网友评论

          本文标题:mogodb

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