MongoDB的CRUD操作讲解-1-insert
时间:2022-07-25
本文章向大家介绍MongoDB的CRUD操作讲解-1-insert,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
插入操作
//插入一条数据
db.inventory.insert(
{
item: "ABC1",
details: {
model: "14Q3",
manufacturer: "XYZ Company"
},
stock: [ { size: "S", qty: 25 }, { size: "M", qty: 50 } ],
category: "clothing"
}
)
//验证插入是否成功
db.inventory.find()
//插入一组数据
var mydocuments =
[
{
item: "ABC2",
details: { model: "14Q3", manufacturer: "M1 Corporation" },
stock: [ { size: "M", qty: 50 } ],
category: "clothing"
},
{
item: "MNO2",
details: { model: "14Q3", manufacturer: "ABC Company" },
stock: [ { size: "S", qty: 5 }, { size: "M", qty: 5 }, { size: "L", qty: 1 } ],
category: "clothing"
},
{
item: "IJK2",
details: { model: "14Q2", manufacturer: "M5 Corporation" },
stock: [ { size: "S", qty: 5 }, { size: "L", qty: 1 } ],
category: "houseware"
}
];
db.inventory.insert(mydocuments);
//使用Bulk进行批量插入
var bulk = db.inventory.initializeUnorderedBulkOp();
bulk.insert(
{
item: "BE10",
details: { model: "14Q2", manufacturer: "XYZ Company" },
stock: [ { size: "L", qty: 5 } ],
category: "clothing"
}
);
bulk.insert(
{
item: "ZYT1",
details: { model: "14Q1", manufacturer: "ABC Company" },
stock: [ { size: "S", qty: 5 }, { size: "M", qty: 5 } ],
category: "houseware"
}
);
bulk.execute();
比较insert和save方法
insert方法的源码
> db.user.insert
function (obj, _allow_dot) {
if (!obj) {
throw "no object passed to insert!";
}
if (!_allow_dot) {
this._validateForStorage(obj);
}
if (typeof obj._id == "undefined" && !Array.isArray(obj)) {
var tmp = obj;
obj = {_id:new ObjectId};
for (var key in tmp) {
obj[key] = tmp[key];
}
}
this._db._initExtraInfo();
this._mongo.insert(this._fullName, obj);
this._lastID = obj._id;
this._db._getExtraInfo("Inserted");
}
save方法的源码
> db.user.save
function (obj) {
if (obj == null || typeof obj == "undefined") {
throw "can't save a null";
}
if (typeof obj == "number" || typeof obj == "string") {
throw "can't save a number or string";
}
if (typeof obj._id == "undefined") {
obj._id = new ObjectId;
return this.insert(obj);
} else {
return this.update({_id:obj._id}, obj, true);
}
}
区别:
- 首先要知道,_id是唯一索引,在同一个集合内不能重复
- 当使用insert方法,插入一条重复的id的文档时,文档插入失败
- 当时用save方法,插入一条重复的id的文档时,save采用的方法是属性字段更新替换,id不变。
喜欢 (0)or分享 (0)
- HDU 3480 Division
- 小白博客 Xiaobai___详细教你如何在Linux环境下安装mysql数据库
- 3856: Monster
- BZOJ4753: [Jsoi2016]最佳团体
- 3101: N皇后
- 算法模板——线性欧拉函数
- jdbc基础 (一) MySQL的简单使用
- 小白博客 爆破内网mysql数据库root密码脚本代码
- 2818: Gcd
- 1688: [Usaco2005 Open]Disease Manangement 疾病管理
- 通过MySQL自动同步刷新Redis
- 13.MySQL(一) 数据库简介mysql安装数据库操作Mysql数据类型存储引擎
- 3314: [Usaco2013 Nov]Crowded Cows
- BZOJ4766: 文艺计算姬
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Spring AOP,应该不会有比这更详细的介绍了!
- 我又发现 Spring Security 中一个小秘密!
- OpenCV的实用图像处理操作案例分享
- CentOS 7上搭建 Zabbix4.0,一次性成功,收藏了!
- 超全!我整理一波最常用的开源项目
- 【NLP】竞赛必备的NLP库
- Java NIO Selector 详解
- 【机器学习基础】一文搞懂机器学习里的L1与L2正则化
- 【深度学习】深入理解LSTM
- 短视频商城源码,两种方式实现点击出现弹窗显示
- 【50期】基础考察:ClassNotFoundException 和 NoClassDefFoundError 有什么区别
- MySQL 8.0新特性 — 管理端口
- 从单词嵌入到文档距离 :WMD一种有效的文档分类方法
- 程序员技术选型:写Go还是Java?
- 用python爬虫简单网站却有 “多重思路”--猫眼电影