文档的插入

简介: MongoDB支持单个或批量插入文档。使用`insert()`或`insertMany()`向集合添加数据,未指定`_id`时自动生成,支持多种数据类型,注意整型需用`NumberInt`,日期用`new Date()`,键名遵循UTF-8规范且不可重复。

1)单个文档插入
使用insert() 或 save() 方法向集合中插入文档,语法如下:
db.collection.insert(

,
{
writeConcern: ,
ordered:
}
)
【示例】
要向comment的集合(表)中插入一条测试数据:
db.comment.insert(
{
"articleid":"100000",
"content":"今天天气真好,阳光明媚",
"userid":"1001",
"nickname":"Rose",
"createdatetime":new Date(),
"likenum":NumberInt(10),
"state":null
}
)
提示:
1)comment集合如果不存在,则会隐式创建
2)mongo中的数字,默认情况下是double类型,如果要存整型,必须使用函数NumberInt(整型数字),否则取出来就有问题了。
3)插入当前日期使用 new Date()
4)插入的数据没有指定 _id ,会自动生成主键值
5)如果某字段没值,可以赋值为null,或不写该字段。
执行后,如下,说明插入一个数据成功了。
WriteResult({ "nInserted" : 1 })
注意:

  1. 文档中的键/值对是有序的。
  2. 文档中的值不仅可以是在双引号里面的字符串,还可以是其他数据类型(甚至可以是整个嵌入文档)。
  3. MongoDB区分类型和大小写。
  4. MongoDB的文档不能有重复的键。
  5. 文档的键是字符串。除了少数例外情况,键可以使用任意UTF-8字符。
    文档键命名规范:
    ● 键不能含有\0 (空字符)。这个字符用来表示键的结尾。
    ● .和$有特别的意义,只有在特定环境下才能使用。
    ● 以下划线"_"开头的键是保留的(不是严格要求的)。
    (2)批量插入
    语法:
    db.collection.insertMany(
    [ , , ... ],
    {
    writeConcern: ,
    ordered:
    }
    )
    【示例】
    批量插入多条文章评论:
    db.comment.insertMany(
    [
    {"_id":"1","articleid":"100001","content":"我们不应该把清晨浪费在手机上,健康很重要,一杯温水幸福你我
    他。","userid":"1002","nickname":"相忘于江湖","createdatetime":new Date("2019-08-
    05T22:08:15.522Z"),"likenum":NumberInt(1000),"state":"1"},
    {"_id":"2","articleid":"100001","content":"我夏天空腹喝凉开水,冬天喝温开水","userid":"1005","nickname":"伊人憔
    悴","createdatetime":new Date("2019-08-05T23:58:51.485Z"),"likenum":NumberInt(888),"state":"1"},
    {"_id":"3","articleid":"100001","content":"我一直喝凉开水,冬天夏天都喝。","userid":"1004","nickname":"杰克船
    长","createdatetime":new Date("2019-08-06T01:05:06.321Z"),"likenum":NumberInt(666),"state":"1"},
    {"_id":"4","articleid":"100001","content":"专家说不能空腹吃饭,影响健康。","userid":"1003","nickname":"凯
    撒","createdatetime":new Date("2019-08-06T08:18:35.288Z"),"likenum":NumberInt(2000),"state":"1"},
    {"_id":"5","articleid":"100001","content":"研究表明,刚烧开的水千万不能喝,因为烫
    嘴。","userid":"1003","nickname":"凯撒","createdatetime":new Date("2019-08-
    06T11:01:02.521Z"),"likenum":NumberInt(3000),"state":"1"}
    ]
    );
    提示: 插入时指定了_id ,则主键就是该值。 如果某条数据插入失败,将会终止插入,但已经插入成功的数据不会回滚掉。 因为批量插入由于数据较多容易出现失败,因此,可以使用try catch进行异常捕捉处理,测试的时候可以不处理。如(了解):
    try {
    db.comment.insertMany([
    {"_id":"1","articleid":"100001","content":"我们不应该把清晨浪费在手机","userid":"1002","nickname":"相忘于江湖","createdatetime":new Date("2019-08-
    05T22:08:15.522Z"),"likenum":NumberInt(1000),"state":"1"},
    {"_id":"2","articleid":"100001","content":"我夏天空腹喝凉开水,冬天喝温开水","userid":"1005","nickname":"伊人憔
    悴","createdatetime":new Date("2019-08-05T23:58:51.485Z"),"likenum":NumberInt(888),"state":"1"},
    {"_id":"3","articleid":"100001","content":"我一直喝凉开水,冬天夏天都喝。","userid":"1004","nickname":"杰克船
    长","createdatetime":new Date("2019-08-06T01:05:06.321Z"),"likenum":NumberInt(666),"state":"1"},
    {"_id":"4","articleid":"100001","content":"专家说不能空腹吃饭,影响健康。","userid":"1003","nickname":"凯
    撒","createdatetime":new Date("2019-08-06T08:18:35.288Z"),"likenum":NumberInt(2000),"state":"1"},
    {"_id":"5","articleid":"100001","content":"研究表明,刚烧开的水千万不能喝,因为烫
    嘴。","userid":"1003","nickname":"凯撒","createdatetime":new Date("2019-08-
    06T11:01:02.521Z"),"likenum":NumberInt(3000),"state":"1"}
    ]);
    } catch (e) {
    print (e);
    }
相关文章
|
存储 区块链 Python
元宇宙宠物养殖游戏系统开发搭建-附源码部署示例
元宇宙宠物养殖游戏系统开发搭建-附源码部署示例
|
SQL 敏捷开发 存储
制造业中最抢手的9个IT工作
制造业中最抢手的9个IT工作
650 0
|
4月前
|
缓存 安全 数据挖掘
数据库设计三范式:从理论到实战
本文深入浅出讲解数据库三范式(1NF、2NF、3NF),通过真实案例解析各范式的核心要求与常见误区,强调“范式是工具而非教条”,帮助开发者在规范性与性能间找到平衡,构建合理、易维护的数据模型。
|
数据库
【计算机三级数据库技术】第11章 数据库的故障管理--附思维导图
文章概述了数据库故障类型及其解决办法、数据库恢复技术、数据转储、日志文件的使用与格式、硬件容错方案(包括RAID技术和服务器容错技术)、以及数据库镜像与容灭策略。
372 2
|
Python
Python编程:pypdf2和pdfplumber获取pdf文件的页数
Python编程:pypdf2和pdfplumber获取pdf文件的页数
849 0
|
Ubuntu Linux 网络安全
MobaXterm链接linux虚拟机报错Network error: Connection refused
MobaXterm链接linux虚拟机报错Network error: Connection refused
2745 2
|
设计模式 前端开发 数据库
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第27天】本文介绍了Django框架在Python Web开发中的应用,涵盖了Django与Flask等框架的比较、项目结构、模型、视图、模板和URL配置等内容,并展示了实际代码示例,帮助读者快速掌握Django全栈开发的核心技术。
845 45
|
缓存
npm install 报错 ‘proxy‘ config is set properly. See: ‘npm help config‘
npm install 报错 ‘proxy‘ config is set properly. See: ‘npm help config‘
4050 0
|
4月前
|
安全 小程序 JavaScript
OAuth2.0四种授权模式
OAuth2四种授权模式简介:授权码模式最安全,适用于第三方登录;简化模式无授权码,token直接返回,适合无后端场景;密码模式需用户共享账号信息,仅限高度信任服务;客户端模式为服务间调用,无需用户参与。
|
4月前
|
存储 NoSQL 物联网
MongoDB应用场景
MongoDB适用于社交、游戏、物流、物联网及直播等场景,因其支持海量数据存储、高频读写操作。用户信息、动态、日志等低事务性、高并发数据可高效存取,尤其适合用嵌套结构与地理位置索引优化查询,是大规模非结构化数据存储的理想选择。(238字)

热门文章

最新文章