zoukankan      html  css  js  c++  java
  • MongoDB 基础学习

    1、MongoDB 概念解析

    SQL术语/概念MongoDB术语/概念解释/说明
    database database 数据库
    table collection 数据库表/集合
    row document 数据记录行/文档
    column field 数据字段/域
    index index 索引
    table joins   表连接,MongoDB不支持
    primary key primary key 主键,MongoDB自动将_id字段设置为主键

    2、基本语法

    创建数据库:如果数据库不存在,则创建数据库,否则切换到指定数据库。

    use DATABASE_NAME

    查看数据库:刚创建的数据库  并不在数据库的列表中, 要显示它,我们需要向数据库插入一些数据。

    (MongoDB 中默认的数据库为 test,如果你没有创建新的数据库,集合将存放在 test 数据库中)

    show dbs

    删除数据库:删除当前数据库,默认为 test,你可以使用 db 命令查看当前数据库名。

    db.dropDatabase()

    删除集合:db.runoob.drop() :删除runoob集合

    db.collection.drop()

    创建集合: name: 要创建的集合名称;options: 可选参数, 指定有关内存大小及索引的选项

    db.createCollection(name, options)

    options选项:

    字段类型描述
    capped 布尔 (可选)如果为 true,则创建固定集合。固定集合是指有着固定大小的集合,当达到最大值时,它会自动覆盖最早的文档。
    当该值为 true 时,必须指定 size 参数。
    autoIndexId 布尔 (可选)如为 true,自动在 _id 字段创建索引。默认为 false。
    size 数值 (可选)为固定集合指定一个最大值,以千字节计(KB)。
    如果 capped 为 true,也需要指定该字段。
    max 数值 (可选)指定固定集合中包含文档的最大数量。

    查看已经有的集合:show collections

    show collections

    (在 MongoDB 中,你不需要创建集合。当你插入一些文档时,MongoDB 会自动创建集合。)

    插入文档:MongoDB 使用 insert() 或 save() 方法向集合中插入文档

    db.COLLECTION_NAME.insert(document)

    查询数据

    db.collection.find(query, projection)
    • query :可选,使用查询操作符指定查询条件
    • projection :可选,使用投影操作符指定返回的键。查询时返回文档中所有键值, 只需省略该参数即可(默认省略)。

     如果你需要以易读的方式来读取数据,可以使用 pretty() 方法,语法格式如下:db.col.find().pretty()

    pretty() 方法以格式化的方式来显示所有文档。

    如果你熟悉常规的 SQL 数据,通过下表可以更好的理解 MongoDB 的条件语句查询:

    操作格式范例RDBMS中的类似语句
    等于 {<key>:<value>} db.col.find({"by":"菜鸟教程"}).pretty() where by = '菜鸟教程'
    小于 {<key>:{$lt:<value>}} db.col.find({"likes":{$lt:50}}).pretty() where likes < 50
    小于或等于 {<key>:{$lte:<value>}} db.col.find({"likes":{$lte:50}}).pretty() where likes <= 50
    大于 {<key>:{$gt:<value>}} db.col.find({"likes":{$gt:50}}).pretty() where likes > 50
    大于或等于 {<key>:{$gte:<value>}} db.col.find({"likes":{$gte:50}}).pretty() where likes >= 50
    不等于 {<key>:{$ne:<value>}} db.col.find({"likes":{$ne:50}}).pretty() where likes != 50

    AND条件:MongoDB 的 find() 方法可以传入多个键(key),每个键(key)以逗号隔开,即常规 SQL 的 AND 条件。

    db.col.find({key1:value1, key2:value2}).pretty()

    OR条件:MongoDB OR 条件语句使用了关键字 $o

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

    更新:MongoDB 使用 update() 和 save() 方法来更新集合中的文档

    update() 方法用于更新已存在的文档。语法格式如下

    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 :可选,抛出异常的级别。

    save() 方法通过传入的文档来替换已有文档。语法格式如下:

    db.collection.save(
       <document>,
       {
         writeConcern: <document>
       }
    )
    • document : 文档数据。
    • writeConcern :可选,抛出异常的级别。

    删除文档:remove() 

    db.collection.remove(
       <query>,
       <justOne>
    )

    如果你的 MongoDB 是 2.6 版本以后的,语法格式如下:

    db.collection.remove(
       <query>,
       {
         justOne: <boolean>,
         writeConcern: <document>
       }
    )
    • query :(可选)删除的文档的条件。
    • justOne : (可选)如果设为 true 或 1,则只删除一个文档,如果不设置该参数,或使用默认值 false,则删除所有匹配条件的文档。
    • writeConcern :(可选)抛出异常的级别。
  • 相关阅读:
    104.Maximum Depth of Binary Tree
    103.Binary Tree Zigzag Level Order Traversal
    102.Binary Tree Level Order Traversal
    101.Symmetric Tree
    100.Same Tree
    99.Recover Binary Search Tree
    98.Validate Binary Search Tree
    97.Interleaving String
    static静态初始化块
    serialVersionUID作用
  • 原文地址:https://www.cnblogs.com/jnba/p/12881694.html
Copyright © 2011-2022 走看看