zoukankan      html  css  js  c++  java
  • mongodb数据结构学习1--增删改查

    插入文档

    在数据库中,数据插入是最基本的操作,在MongoDB使用db.collection.insert(document)语句来插入文档;

    document是文档数据,collection是存放文档数据的集合。

    例如:所有用户的信息存放在users集合中,每个用户的信息为一个user文档,插入数据:

    db.users.insert(user);
    

      如果collection存在,document会添加到collection目录下, 如果collection不存在,数据库会先创建collection,然后再保存document

    批量插入文档

    insert语句不但可以插入单个文档,还可以一次性插入多个文档。

    插入多个文档时,insert命令的参数为一个数组,数组元素为BSON格式的文档。

    多个文档可以放在一个数组内,一次插入多条数据,例如:

    db.users.insert([{name:"tommy"},{name:"xiaoming"}])
    

      文档批量插入非常方便,但是使用批量插入时也有一些问题需要注意,因为BSON格式的限制,一次插入的数据量不能超过16M,在一个insert命令中插入多条数据时,MongoDB不保证完全成功或完全失败。

    查询文档

    在MongoDB中,查询指向特定的文档集合,查询设定条件,指明MongoDB需要返回的文档;查询也可以包含一个投影,指定返回的字段。

    如下图,在查询过程指定了一个查询条件和一个排序修饰。

    在关系型数据库中,投影指的是对列的筛选,类似的,在MongoDB中,投影指的是对出现在结果集中的对象属性的筛选。

    文档查询 - find方法

    MongoDB中查询检索数据时使用find命令,使用方法如下:

    • 语法:
    db.collection.find(criteria,projection);
    • 参数:

      criteria – 查询条件,文档类型,可选。

      projection– 返回的字段,文档类型,可选,若需返回所有字段,则忽略此参数。

    find命令两个可选参数,criteria为查询条件,projection为返回的字段,如果不传入条件数据库会返回该集合的所有文档。

    修改文档--update命令

    update命令可以更新指定文档的特定字段值,也可以替换整个文档,如果更新操作会增加文档大小,MongoDB将重新分配空间并重新定位。

    • 语法:
    db.collection.update(query,update,{upsert:boolean,multi:boolean});
    • 参数:

      query:查询条件,文档,和find中的查询条件写法一致。

      update:修改内容,文档。

      upsert(可选):如果值为true,那么当集合中没有匹配文档时,创建文档。默认false。

      multi(可选):如果值为true,那么将更新全部符合条件的文档,否则仅更新一个文档,默认false。

    • 如下示例:将users集合中所有符合条件"age>18"文档的status字段更新为"A"。

    修改文档--save命令

    save命令可以更新或插入一个新文档,与update命令不同的是,save只能对一个文档进行操作。

    • 语法:
    db.collection.save();
    • 参数:

      document:新的文档;

    删除文档--remove命令

    需要删除文档时使用remove命令,删除文档可以清理掉不需要的数据,释放存储空间,提升检索效率,但是错误的删除会是一场灾难,因此在执行数据删除操作时需要非常的谨慎!

    • 语法:
      1. db.collection.remove(
      2. query,
      3. justOne
      4. )
    • 参数:

      query:BSON类型,删除文档的条件。

      justOne:布尔类型,true:只删除一个文档,false:默认值,删除所有符合条件的文档。

    下面是一个是将users集合中所有status="D"的文档删除操作,对比一下MongoDB和传统SQL数据库删除的操作,看看有哪些不同之处。

      与传统SQL比较 - 删除文档

    • MongoDB

    • 传统SQL

  • 相关阅读:
    C# 二维码 ThoughtWorks.QRCode.dll
    Asp.net生命周期
    进程和线程,多线程等使用方法
    反射的使用与定义
    《委托和事件》
    《泛型集合》
    第三课时《枚举》
    数据库字段包括数组中的每一项
    .NetCore 图片压缩
    NetCore3.0 EF修改
  • 原文地址:https://www.cnblogs.com/shuiche/p/4606268.html
Copyright © 2011-2022 走看看