zoukankan      html  css  js  c++  java
  • MongoDB初期学习

    一.数据库
    1.删除 db.dropDatabase()
    2.创建/使用: use dbName(数据库名)
    3.展示所有数据库: show dbs

    二.集合
    1.创建集合:db.createCollection(name, options)
    注:options:1.capped:固定集合,如果为true,size必选 2.autoIndexId:自动创建索引,3.2版本不支持 3.size:固定集合最大值 4.max:包含文档的最大数量
    例如:db.createCollection("test1",{capped:true,autoIndexId:true,size:10000,max:100})
    2.展示集合: show collections
    3.删除集合:db.集合名.drop()

    三.插入文档
    1.save():如果 _id 主键存在则更新数据;该方法新版本中已废弃;
    db.COLLECTION_NAME.insert(document)
    2.insert():若插入的数据主键已经存在,抛异常
    db.COLLECTION_NAME.save(document)
    3.insertOne() 用于向集合插入一个新文档
    db.collection.insertOne()
    4.db.collection.insertMany() 用于向集合插入一个多个文档
    5.replaceOne()
    db.collection.replaceOne()

    四:更新文档
    1.db.collection.update( <query>,<update>,{ upsert: <boolean>, multi: <boolean>, writeConcern: <document>})
    query : update的查询条件,类似sql update查询内where后面的。
    update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
    upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
    multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
    writeConcern :可选,抛出异常的级别。
    例如:db.col.update({'_id':ObjectId('61ceb9a0eb7e0000c90045e6')},{$set:{'title':'MongoDB'}},{upsert:true,multi:true})

    五:删除文档
    1.remove
    db.collection.remove(<query>,{justOne: <boolean>,writeConcern: <document>})
    说明: query :(可选)删除的文档的条件。
    justOne : (可选)如果设为 true 或 1,则只删除一个文档,如果不设置该参数,或使用默认值 false,则删除所有匹配条件的文档。
    writeConcern :(可选)抛出异常的级别。
    例如: db.col.remove({'_id':ObjectId('61cebb24e353ea420f778669') },{justOne: 1})
    2.deleteOne() 和 deleteMany()
    例如: db.col.deleteMany({'_id':ObjectId('61ceb9a0eb7e0000c90045e6') },{justOne: 1})

    六: 查询文档
    1.db.collection.find(query, projection).pretty()
    说明: query :可选,使用查询操作符指定查询条件
    projection :可选,使用投影操作符指定返回的键。查询时返回文档中所有键值, 只需省略该参数即可(默认省略)。
    pretty():以易读的方式来读取数据,可不用
    2.操作符
    等于: db.col.find({"by":"***"})
    小于: db.col.find({"by":{$lt:50})
    小于等于: db.col.find({"by":{$lte:50})
    大于: db.col.find({"by":{$gt:50})
    大于等于: db.col.find({"by":{$gte:50})
    不等于: db.col.find({"by":{$ne:50})
    and: db.col.find({"by":"*","by":"**","by":"***"})
    or: db.col.find({$or:[{key1: value1}, {key2:value2}]})
    3.Limit()方法
    db.COLLECTION_NAME.find().limit(NUMBER)
    4.Skip()跳过指定数量查询记录数
    db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER)
    5.排序sort() 方法
    db.COLLECTION_NAME.find().sort({KEY:1/-1});其中,1 为升序排列,而-1 是用于降序排列。
    6.创建索引createIndex()
    语法:db.collection.createIndex(keys, options)
    查询索引:db.col.getIndexes()
    查看集合索引大小:db.col.totalIndexSize()
    删除集合所有索引:db.col.dropIndexes()
    删除集合指定索引:db.col.dropIndex("索引名称")
    7.聚合
    语法:db.COLLECTION_NAME.aggregate(AGGREGATE_OPERATION)
    $sum 计算总和。 db.col.aggregate([{$group : {_id : "$by_user", num_tutorial : {$sum : "$likes"}}}])
    $avg 计算平均值 db.col.aggregate([{$group : {_id : "$by_user", num_tutorial : {$avg : "$likes"}}}])
    $min 获取集合中所有文档对应值得最小值。 db.col.aggregate([{$group : {_id : "$by_user", num_tutorial : {$min : "$likes"}}}])
    $max 获取集合中所有文档对应值得最大值。 db.col.aggregate([{$group : {_id : "$by_user", num_tutorial : {$max : "$likes"}}}])
    $push 将值加入一个数组中,不会判断是否有重复的值。 db.col.aggregate([{$group : {_id : "$by_user", url : {$push: "$url"}}}])
    $addToSet 将值加入一个数组中,会判断是否有重复的值,若相同的值在数组中已经存在了,则不加入。 db.col.aggregate([{$group : {_id : "$by_user", url : {$addToSet : "$url"}}}])
    $first 根据资源文档的排序获取第一个文档数据。 db.col.aggregate([{$group : {_id : "$by_user", first_url : {$first : "$url"}}}])
    $last 根据资源文档的排序获取最后一个文档数据 db.col.aggregate([{$group : {_id : "$by_user", last_url : {$last : "$url"}}}])

  • 相关阅读:
    所有蚂蚁掉下来前的最后一刻
    最长有效括号
    n的第k个因子--leetcode1492
    删掉一个元素以后全为1的最长子数组。
    public class和class的区别
    数据库中的乐观锁和悲观锁以及实现方式
    HashMap底层实现原理 扩容机制
    jvm 内存泄漏现象和处理方案
    Django模板标签语法
    Django图片的上传与下载
  • 原文地址:https://www.cnblogs.com/hyy9527/p/15753934.html
Copyright © 2011-2022 走看看