文档的插入

简介: MongoDB支持单条及批量插入文档。使用insert()或insertMany()向集合添加数据,未指定_id时自动生成,支持NumberInt、new Date()等类型处理。集合不存在会自动创建,键不可重复,需遵循命名规范,批量插入失败不回滚已成功数据,建议用try-catch捕获异常。(239字)

(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);
    }
相关文章
|
3月前
|
人工智能 数据可视化 网络安全
零基础必看:2026年OpenClaw(Clawdbot)阿里云一键部署教程+接入iMessage指南
在AI自动化工具爆发的2026年,OpenClaw(原Clawdbot、Moltbot)凭借“自然语言指令+多场景任务自动执行”的核心优势,成为新手小白追捧的“专属数字员工”——它无需专业编程基础,就能实现文件管理、联网搜索、多平台协同等多样化功能,而阿里云轻量服务器推出的OpenClaw一键部署方案,更是彻底打破了新手的入门壁垒,预置专属镜像、自动化配置环境,全程可视化操作,哪怕你完全不懂技术、不懂服务器,跟着步骤也能15-20分钟完成部署,部署后还能快速接入iMessage,实现手机、Mac端随时随地操控AI,解锁高效办公与便捷生活新方式。
471 2
|
5月前
|
文字识别 安全 数据处理
RAG分块应用中普遍存在的问题
RAG系统面临准确性、召回率与复杂文档解析三大挑战:模型易产生幻觉、检索噪声干扰、细粒度理解不足;语义匹配局限导致漏检,长尾知识覆盖差,多跳推理困难;表格、公式、图片等非结构化数据处理难,上下文割裂、逻辑结构丢失。合理分块策略是破局关键。
Vue3——基于tdesign封装一个通用的查询组件
Vue3——基于tdesign封装一个通用的查询组件
572 3
|
Dubbo Java 应用服务中间件
Dubbo第二讲:深入理解dubbo分布式服务框架/负载/容错/调优/高可用/dubbo网关/面试/技术选型
Dubbo第二讲:深入理解dubbo分布式服务框架/负载/容错/调优/高可用/dubbo网关/面试/技术选型
888 0
|
人工智能 安全 数据可视化
2024黑帽大会最热门的九大AI网络安全工具
在2024年的黑帽大会(Black Hat 2024)上,AI驱动的网络安全工具和技术成为焦点,引领了网络安全行业新趋势。众多安全厂商和初创公司展示了他们的最新成果,利用生成式AI来管理风险、检测并对抗网络犯罪,保障企业安全。以下是大会上一些备受瞩目的AI驱动网络安全产品和服务:
|
存储 边缘计算 人工智能
深入理解云计算:架构、类型与未来趋势
【10月更文挑战第6天】深入理解云计算:架构、类型与未来趋势
667 0
|
移动开发 前端开发 JavaScript
|
JavaScript
利用Termux和cpolar在手机上搭建Hexo博客,实现远程访问的完整指南
利用Termux和cpolar在手机上搭建Hexo博客,实现远程访问的完整指南
306 0
|
JSON JavaScript 前端开发
什么是JSON 对象?
什么是JSON 对象?
441 2
EndNote参考文献英文论文的中文作者拼音姓名显示名的第二个字的首写字母
EndNote参考文献英文论文的中文作者拼音姓名显示名的第二个字的首写字母
385 1