zoukankan      html  css  js  c++  java
  • MongoDB快速入门学习笔记3 MongoDB的文档插入操作

    1、文档的数据存储格式为BSON,类似于JSON。MongoDB插入数据时会检验数据中是否有“_id”,如果没有会自动生成。
    shell操作有insert和save两种方法。当插入一条数据有“_id”值,并且现在集合中已经有相同的值,使用insert插入时插入不进去,使用save时,会更新数据。

     1 > db.student.drop()
     2 true
     3 > db.student.insert({"_id": 1, "name":"zhangsan", "age": 28})
     4 WriteResult({ "nInserted" : 1 })
     5 > db.student.find()
     6 { "_id" : 1, "name" : "zhangsan", "age" : 28 }
     7 > db.student.insert({"_id": 1, "name":"zhangsan", "age": 27})
     8 WriteResult({
     9         "nInserted" : 0,
    10         "writeError" : {
    11                 "code" : 11000,
    12                 "errmsg" : "E11000 duplicate key error collection: zyhdb.student index: _id_ dup key: { : 1.0 }"
    13         }
    14 })
    15 > db.student.find()
    16 { "_id" : 1, "name" : "zhangsan", "age" : 28 }
    17 > db.student.save({"_id": 1, "name":"zhangsan", "age": 27})
    18 WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
    19 > db.student.find()
    20 { "_id" : 1, "name" : "zhangsan", "age" : 27 }

    2、批量插入,网上的文档都说不能MongoDB不支持批量插入,现在试过可以,应该是目前的版本支持批量插入了。

     1 > db.student.insert([{"_id": 2, "name": "lisi"},{"_id": 3, "name": "wangwu"}, {"_id": 4, "name": "zhaoliu", "age": 28}])
     2 BulkWriteResult({
     3 "writeErrors" : [ ],
     4 "writeConcernErrors" : [ ],
     5 "nInserted" : 3,
     6 "nUpserted" : 0,
     7 "nMatched" : 0,
     8 "nModified" : 0,
     9 "nRemoved" : 0,
    10 "upserted" : [ ]
    11 })
    12 > db.student.find()
    13 { "_id" : 1, "name" : "zhangsan", "age" : 27 }
    14 { "_id" : 2, "name" : "lisi" }
    15 { "_id" : 3, "name" : "wangwu" }
    16 { "_id" : 4, "name" : "zhaoliu", "age" : 28 }

     

    3、循环插入:

     1 > for(var i=0; i<10; i++){db.fortest.insert({num: i})}
     2 WriteResult({ "nInserted" : 1 })
     3 > db.fortest.find()
     4 { "_id" : ObjectId("57469e80142cea1d9aeabab5"), "num" : 0 }
     5 { "_id" : ObjectId("57469e80142cea1d9aeabab6"), "num" : 1 }
     6 { "_id" : ObjectId("57469e80142cea1d9aeabab7"), "num" : 2 }
     7 { "_id" : ObjectId("57469e80142cea1d9aeabab8"), "num" : 3 }
     8 { "_id" : ObjectId("57469e80142cea1d9aeabab9"), "num" : 4 }
     9 { "_id" : ObjectId("57469e80142cea1d9aeababa"), "num" : 5 }
    10 { "_id" : ObjectId("57469e80142cea1d9aeababb"), "num" : 6 }
    11 { "_id" : ObjectId("57469e80142cea1d9aeababc"), "num" : 7 }
    12 { "_id" : ObjectId("57469e80142cea1d9aeababd"), "num" : 8 }
    13 { "_id" : ObjectId("57469e80142cea1d9aeababe"), "num" : 9 }
  • 相关阅读:
    JDBC之Statement 接口的测试(存在sql注入风险)
    Java操作数据库之JDBC增删改查
    Java实体类之间的映射(一对多关系)
    Java实体类之间的映射(一对一关系)
    yield(放弃、谦逊、礼让)
    daemon(守护、服务员)-t1.setDaemon(true)
    join当前线程等待指定的线程结束后才能继续运行
    检查你要加入到gradle的第三方library是否是最新版本
    git 无法忽略Android Studio 生成的 .idea目录解决办法
    mybatis3 step by step 快速上手
  • 原文地址:https://www.cnblogs.com/zhangyanhu/p/5532688.html
Copyright © 2011-2022 走看看