千家信息网

mongodb CRUD操作-INSERT

发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,# ./mongod2018-04-15T18:52:36.352+0800 I CONTROL [initandlisten] MongoDB starting : pid=36578 port=
千家信息网最后更新 2025年01月19日mongodb CRUD操作-INSERT

# ./mongod

2018-04-15T18:52:36.352+0800 I CONTROL  [initandlisten] MongoDB starting : pid=36578 port=27017 dbpath=/data/db 64-bit host=IBG-opensource-DB-cwT132018-04-15T18:52:36.352+0800 I CONTROL  [initandlisten] db version v3.6.22018-04-15T18:52:36.352+0800 I CONTROL  [initandlisten] git version: 489d177dbd0f0420a8ca04d39fd78d0a2c5394202018-04-15T18:52:36.352+0800 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.1e-fips 11 Feb 20132018-04-15T18:52:36.352+0800 I CONTROL  [initandlisten] allocator: tcmalloc2018-04-15T18:52:36.352+0800 I CONTROL  [initandlisten] modules: none2018-04-15T18:52:36.352+0800 I CONTROL  [initandlisten] build environment:2018-04-15T18:52:36.352+0800 I CONTROL  [initandlisten]     distmod: rhel702018-04-15T18:52:36.352+0800 I CONTROL  [initandlisten]     distarch: x86_642018-04-15T18:52:36.352+0800 I CONTROL  [initandlisten]     target_arch: x86_642018-04-15T18:52:36.352+0800 I CONTROL  [initandlisten] options: {}2018-04-15T18:52:36.354+0800 I -        [initandlisten] Detected data files in /data/db created by the 'wiredTiger' storage engine, so setting the active storage engine to 'wiredTiger'.2018-04-15T18:52:36.354+0800 I STORAGE  [initandlisten] wiredtiger_open config: create,cache_size=7423M,session_max=20000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),statistics_log=(wait=0),verbose=(recovery_progress),2018-04-15T18:52:36.512+0800 I STORAGE  [initandlisten] WiredTiger message [1523789556:512963][36578:0x7f6aac8c2b00], txn-recover: Main recovery loop: starting at 2/350722018-04-15T18:52:36.615+0800 I STORAGE  [initandlisten] WiredTiger message [1523789556:615462][36578:0x7f6aac8c2b00], txn-recover: Recovering log 2 through 32018-04-15T18:52:36.676+0800 I STORAGE  [initandlisten] WiredTiger message [1523789556:676715][36578:0x7f6aac8c2b00], txn-recover: Recovering log 3 through 32018-04-15T18:52:36.740+0800 I CONTROL  [initandlisten] 2018-04-15T18:52:36.740+0800 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.2018-04-15T18:52:36.740+0800 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.2018-04-15T18:52:36.740+0800 I CONTROL  [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.2018-04-15T18:52:36.740+0800 I CONTROL  [initandlisten] 2018-04-15T18:52:36.740+0800 I CONTROL  [initandlisten] ** WARNING: This server is bound to localhost.2018-04-15T18:52:36.740+0800 I CONTROL  [initandlisten] **          Remote systems will be unable to connect to this server. 2018-04-15T18:52:36.740+0800 I CONTROL  [initandlisten] **          Start the server with --bind_ip 
to specify which IP 2018-04-15T18:52:36.740+0800 I CONTROL [initandlisten] ** addresses it should serve responses from, or with --bind_ip_all to2018-04-15T18:52:36.740+0800 I CONTROL [initandlisten] ** bind to all interfaces. If this behavior is desired, start the2018-04-15T18:52:36.740+0800 I CONTROL [initandlisten] ** server with --bind_ip 127.0.0.1 to disable this warning.2018-04-15T18:52:36.740+0800 I CONTROL [initandlisten] 2018-04-15T18:52:36.741+0800 I CONTROL [initandlisten] 2018-04-15T18:52:36.741+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.2018-04-15T18:52:36.741+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never'2018-04-15T18:52:36.741+0800 I CONTROL [initandlisten] 2018-04-15T18:52:36.741+0800 I CONTROL [initandlisten] ** WARNING: soft rlimits too low. rlimits set to 65535 processes, 655350 files. Number of processes should be at least 327675 : 0.5 times number of files.2018-04-15T18:52:36.741+0800 I CONTROL [initandlisten] 2018-04-15T18:52:36.755+0800 I FTDC [initandlisten] Initializing full-time diagnostic data capture with directory '/data/db/diagnostic.data'2018-04-15T18:52:36.756+0800 I NETWORK [initandlisten] waiting for connections on port 27017



# ./mongo

MongoDB shell version v3.6.2connecting to: mongodb://127.0.0.1:27017MongoDB server version: 3.6.2Server has startup warnings: 2018-04-15T11:01:19.795+0800 I CONTROL  [initandlisten] 2018-04-15T11:01:19.795+0800 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.2018-04-15T11:01:19.795+0800 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.2018-04-15T11:01:19.795+0800 I CONTROL  [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.2018-04-15T11:01:19.795+0800 I CONTROL  [initandlisten] 2018-04-15T11:01:19.795+0800 I CONTROL  [initandlisten] ** WARNING: This server is bound to localhost.2018-04-15T11:01:19.795+0800 I CONTROL  [initandlisten] **          Remote systems will be unable to connect to this server. 2018-04-15T11:01:19.795+0800 I CONTROL  [initandlisten] **          Start the server with --bind_ip 
to specify which IP 2018-04-15T11:01:19.795+0800 I CONTROL [initandlisten] ** addresses it should serve responses from, or with --bind_ip_all to2018-04-15T11:01:19.795+0800 I CONTROL [initandlisten] ** bind to all interfaces. If this behavior is desired, start the2018-04-15T11:01:19.795+0800 I CONTROL [initandlisten] ** server with --bind_ip 127.0.0.1 to disable this warning.2018-04-15T11:01:19.795+0800 I CONTROL [initandlisten] 2018-04-15T11:01:19.796+0800 I CONTROL [initandlisten] 2018-04-15T11:01:19.796+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.2018-04-15T11:01:19.796+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never'2018-04-15T11:01:19.796+0800 I CONTROL [initandlisten] 2018-04-15T11:01:19.796+0800 I CONTROL [initandlisten] ** WARNING: soft rlimits too low. rlimits set to 65535 processes, 655350 files. Number of processes should be at least 327675 : 0.5 times number of files.2018-04-15T11:01:19.796+0800 I CONTROL [initandlisten]



https://docs.mongodb.com/manual/reference/method/db.collection.insert/


一、插入文档

vps2" >插入行为,,如果集合不存在,则创建

Collection Creation:

If the collection does not currently exist, insert operations will create the collection.


方法:

  • insertOne

db.collection.insertOne(   ,   {      writeConcern:    //Optional. A document expressing the write concern. Omit to use the default write concern.   })

注意:

集合不存在该操作会创建集合。

该操作不支持 db.collection.explain() 查询计划 可以使用insert 代替。


_id Field:


If the document does not specify an _id field, MongoDB adds the _id field with an ObjectId value to the new document.


ObjectId值由12个字节组成,其中前四个字节是反映ObjectId创建的时间戳,具体为:

a 4-byte value representing the seconds since the Unix epoch,

a 3-byte machine identifier,

a 2-byte process id, and

a 3-byte counter, starting with a random value.


> db.products.insertOne( { item: "card", qty: 15 } );

{"acknowledged" : true,         返回值"insertedId" : ObjectId("5ad2c1572c23d0642cd35b48")}> db.products.find();{ "_id" : ObjectId("5ad2c1572c23d0642cd35b48"), "item" : "card", "qty" : 15 }


> db.products.insertOne(

{ "item": "envelopes", "qty": 100, type: "Self-Sealing" },

{ writeConcern: { w : "majority", wtimeout : 100 } } //w:majority,表示>1/2的节点有数据

)

{"acknowledged" : true,"insertedId" : ObjectId("5ad2cecd2c23d0642cd35b4c")}


  • insertMany

db.collection.insertMany(   { [  , , ... ] },//An array of documents to insert into the collection. 注意是数组   {      writeConcern: ,      ordered:    //Optional. A boolean specifying whether the mongod instance should perform an ordered or unordered insert. Defaults to true.   默认式按照顺序添加的    顺序添加的速度要慢于不按顺序添加的   })



注意:

每一组操作最大可以有1000个文档。

顺序添加的速度要慢于不按顺序添加的。

不存在的集合会自动创建。

insertMany() 也不支持db.collection.explain() 可以使用insert 代替。

如果添加出错会报出 BulkWriteError exception 异常,按照顺序添加的 操作遇到错误会直接停止,而不按照顺序的会继续执行在队列中的写操作。


> db.products.insertMany( [

{ item: "card", qty: 15 },

{ item: "envelope", qty: 20 },

{ item: "stamps" , qty: 30 }

] , { w: "majority", wtimeout: 100 }

);


{"acknowledged" : true,"insertedIds" : [ObjectId("5ad2c2332c23d0642cd35b49"),ObjectId("5ad2c2332c23d0642cd35b4a"),ObjectId("5ad2c2332c23d0642cd35b4b")]}


  • insert

db.collection.insert(  #同时又insertOne 和insertMany的功能   ,  //数组或者文档都可以添加   {     writeConcern: ,     ordered:  //跟insertMany()操作作用一致   })


db.products.insert( [

{ item: "card", qty: 15 },

{ item: "envelope", qty: 20 },

{ item: "stamps" , qty: 30 }

] , { w: "majority", wtimeout: 100 }

);


db.products.insert( { item: "card", qty: 40 } );



Additional Methods for Inserts

when used with the upsert: true option:以下方法当没有查询条件匹配时创建新文档,默认是false。


db.collection.update()          db.collection.updateOne()        db.collection.updateMany()      db.collection.findAndModify()    db.collection.findOneAndUpdate()db.collection.findOneAndReplace()db.collection.save()db.collection.bulkWrite()


顺序 文档 字节 数组 方法 速度 支持 查询 最大 一致 会创 作用 功能 同时 数据 时间 条件 节点 行为 队列 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全该做的事 青岛鼎瑞软件开发有限公司 丹江口智能软件开发有哪些 数据库有记录删除受限制 哈利波特服务器是通的吗 网络安全作文800字优秀 南京江苏服务器规格 小软件开发VBA 网络安全监督检查自查表怎么填 网络数据库的安全管理技术 网络安全新股申购 软件开发一般找什么样的公司 键入网络安全密钥错误 腾讯云数据库 本地备份 淮安软件开发择优推荐 泉州直销软件开发 帝国神话创造服务器中文 亳州物业管理软件开发外包公司 数据库安全技术包括保密性 为什么要分客户机和服务器呢 如何优化网贷数据库 网络安全公司非技术岗位 软件开发企业财务分析报告范文 服务器cpu主频在哪里可以看 数据库有记录删除受限制 网络技术基础第五章 上海游戏软件开发教程 服务器地址不可用怎么解决 特朗普上任 网络安全 java查询数据库中所有学生
0