MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
它的最大特点是:
它的限制:
在MongoDB官网,选择 需要安装的环境版本进行安装
安装流程参考这篇文章 MongoDB 安装使用
安装好的本地MongoDB默认运行地址http://localhost:27017/
创建或插入操作用于将新文档添加到集合中。如果集合当前不存在,插入操作会创建集合。
_id
字段:在 MongoDB
中,存储在集合中的每个文档都需要一个唯一的 _id
字段作为主键。如果插入的文档省略了 _id
字段,MongoDB
驱动程序会自动为 ObjectId
字段生成一个 _id
。
1.Collection.insertOne()
将 单个 文档 插入到集合中。insertOne()
返回提供 的 Promise。
await db.collection('inventory').insertOne({
item: 'canvas',
qty: 100,
tags: ['cotton'],
size: { h: 28, w: 35.5, uom: 'cm' }
});
2.Collection.insertMany()
可将 多个 文档 插入到一个集合中。将文档数组传递给该方法。insertMany()
返回提供 的 Promise。
await db.collection('inventory').insertMany([
{
item: 'journal',
qty: 25,
tags: ['blank', 'red'],
size: { h: 14, w: 21, uom: 'cm' }
},
{
item: 'mat',
qty: 85,
tags: ['gray'],
size: { h: 27.9, w: 35.5, uom: 'cm' }
},
{
item: 'mousepad',
qty: 25,
tags: ['gel', 'blue'],
size: { h: 19, w: 22.85, uom: 'cm' }
}
]);
1.选择集合中的所有文档
const cursor = db.collection('inventory').find({});
2.选择集合所有 status 等于 “D” 的文档
const cursor = db.collection('inventory').find({ status: 'D' });
3.使用查询操作符指定条件。从 inventory 集合中检索所有文档。其中 status 等于 “A” 或 “D”
const cursor = db.collection('inventory').find({
status: { $in: ['A', 'D'] }
});
4.指定 AND
条件。复合查询可以为集合文档中的多个字段指定条件。
以下示例检索 inventory 集合中 status 等于 “A” 且qty 小于 ($lt) 30 的所有文档:
const cursor = db.collection('inventory').find({
status: 'A',
qty: { $lt: 30 }
});
5.匹配嵌入式/嵌套文档
以下查询会选择字段 size 等于文档 { h: 14, w: 21, uom: “cm” } 的所有文档:
const cursor = db.collection('inventory').find({
size: { h: 14, w: 21, uom: 'cm' }
});
6.在嵌套字段上指定相等匹配项
以下示例会选择嵌套在 size 字段中的 uom 字段等于 “in” 的所有文档:
const cursor = db.collection('inventory').find({
'size.uom': 'in'
});
1.更新单份文档。使用 Collection.updateOne()
方法
在inventory 集合上更新 item等于 的 第一个"paper" 文档):
await db.collection('inventory').updateOne(
{ item: 'paper' },
{
$set: { 'size.uom': 'cm', status: 'P' },
$currentDate: { lastModified: true }
}
);
$set
操作符将 size.uom 字段的值更新为 “cm”,并将 status 字段的值更新为 “P”,$currentDate
操作符将 lastModified 字段的值更新为当前日期。如果 lastModified 字段不存在,则 $currentDate
将创建该字段。2.更新多个文档。使用 Collection.updateMany()
方法
(位于inventory 集合上)以更新qty 小于50 的所有文档:
await db.collection('inventory').updateMany(
{ qty: { $lt: 50 } },
{
$set: { 'size.uom': 'in', status: 'P' },
$currentDate: { lastModified: true }
}
);
3.替换文档。要替换文档中除 字段之外的全部内容,请将全新文档作为第二个参数传递给_id Collection.replaceOne()
。
如下示例将替换 第一个 集合中的inventory文档,其中的 item: “paper”:
await db.collection('inventory').replaceOne(
{ item: 'paper' },
{
item: 'paper',
instock: [
{ warehouse: 'A', qty: 60 },
{ warehouse: 'B', qty: 40 }
]
}
);
1.删除所有文档。请将空 筛选器 文档 传递给{} Collection.deleteMany()
方法。
如下示例将删除 所有 集合中的inventory文档:
await db.collection('inventory').deleteMany({});
2.删除符合条件的所有文档。请将 筛选器 参数传递给 deleteMany()
方法。
await db.collection('inventory').deleteMany({ status: 'A' });
3.仅删除一个符合条件的文档。请使用 Collection.deleteOne()
方法。
await db.collection('inventory').deleteOne({ status: 'D' });