文档的增删改查

Posted zengsf

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文档的增删改查相关的知识,希望对你有一定的参考价值。

增加文档:

 方法1:

  db.collection.insert({}) 插入单个文档
  db.collection.insertOne({}) 插入当个文档
  db.collection.insert([{},{},{}]) 插入多个文档,参数用中括号
  db.collection.insertMany([{},{}]) 也是插入多个文档

  e.g.
  db.class0.insert({‘name‘:"Lucy","age":18})
  e.q. db.class0.insert([{name:"dfsd",age:19,sex:"w"},{name:"fdsf",age:20,sex:"m"}])

  * 文档中键可以不加引号
  * _id为系统自动添加主键,如果自己写也可以,但是不能重复
  * _id 值可以自己插入,但是不能重复,_id就相当于主键

 方法2:  

  db.collection.save() 也是插入文档
  *如果不适用_id则save用法同insert一样
  * 如果加_id项,此时文档已经存在时则会替换原有文档,如果不存在,者正常插入

删除文档:

  mysql:delete from table 表名 where
  mongodb:db.collection.remove(query,justOne)

  remove(query,justOne)
   功能:删除文档
   参数:query 用法同find
      justOne 布尔值 默认为false表示删除所有符合条件的文档设置文true则表示只删除一条
    e.g. 删除所有不存在sex的域的文档
      db.class1.remove({sex:{$exists:false}})
    e.g. 删除第一条性别为w的文档
      db.class1.remove({sex:"w"}, true)

  db.collection.remove({})    删除集合中所有的文档

修改文档:

  mysql : update table set ... where ...

  mongodb : db.collection.update(query,update,upsert,multi)
    功能 : 修改文档
    参数 : query 筛选要修改的文档,相当于where     用法同查找
        update :将筛选的文档修改为什么内容,相当于set。 需要配合修改操作符($set)一同使用。
        upsert : bool值,默认为false。如果query的文档不存在则不进行任何操作
            如果设置为true则如果query的文档不存在就根据query和update插入新文档
        multi : bool值,默认为false。如果query文档有多条则只修改第一条,如果设置为true 则修改所有符合条件文档

   例子:
      将文档中名字为zengsf的年龄设置为15
        db.class.update({name:"zengsf"},{$set:{age:15}})
      如果有name=Jame的文档则修改,如果没有则根据query update插入新的文档
        db.class.update({name:"Jame"},{$set:{age:18}},true)

查找文档内容:

  mysql : select * from table table where ...
  mongodb : db.collection.find(query, field)

    find(query,filed)
      功能:查找文档
      参数:query 查找条件,相当于where字句
        field 查找的域
      返回值: 查找到的所有文档

      query:以键值对方式传参,如果是空{}表示查找所有内容

      field:以键值对的方式给出要查找(不查找)的域,以域名为键,以0,1为值分别表示不查找和查找
        db.class0.find({},{name:0}); 除名字以外,其它都查找
        db.class0.find({},{name:1}); 除名字以外,其它都不查找
      * 如果某一个或多个域设置为0 表示这些域不查找,其它域均查找
      * 如果某一个或多个域设置为1, 表示这些域都查找,其它域均不查找
      * _id除非设置为0,否则均会查找
      * 除_id域以外,其它域不能有的设置1有的设置0  

  查找所有内容  db.collection.find()

  findOne(query,field)
   功能: 查找第一条符合条件的文档
   参数: 同find
   返回值: 返回查找到的文档










































以上是关于文档的增删改查的主要内容,如果未能解决你的问题,请参考以下文章

MySQL-增删改查简易操作

django配置模型增删改查

MySQL基本操作--库表增删改查

库表曾删改查和存储引擎

mysql增删改查

文档的增删改查