MongoDB
简介
MongoDB 是一款流行的开源文档型数据库,是一个介于关系数据库和非关系数据库之间的产品。数据结构是类似json的bson格式,因此可以存储比较复杂的数据类型。
安装
MongoDB服务器下载链接
MongoDB Shell 【需配置环境变量,指令为mongosh】
基础指令
show dbs
查看数据库use 数据库名
【使用数据库】use 不存在数据库名
【切换的数据库在内存当中】db
【查看当前所处数据库】db.集合名.insert(文档型数据)
【插入单个或者多个数据】db.集合名.insertOne(文档型数据)
【插入一个文档】eg:insertOne({name:‘张三’,age:19})db.集合名.insertMany(文档型数据)
- 【插入多个文档】eg:insertOne([{name:‘张三’,age:19},{name:‘李四’,age:20}])
db.集合名.find(条件)
【查询满足条件的文档】db.集合名.findOne(条件)
【查询第一个满足条件的文档】db.集合名.updateOne(条件,修改数据)
【修改满足条件的单个文档】db.集合名.updateMany(条件,修改数据)
【修改满足条件的多个文档】db.集合名.delete(条件)
【删除满足条件的单个文档】db.集合名.deleteMany(条件)
【删除满足条件的多个文档】- 条件:
eg:{name:‘张三’} 【满足name字段为张三的文档】
eg:{age:{$gt:20}} 【满足age字段大于20的文档】 - 修改数据:
eg:{$set:{age:21}} db.dropDatabase()
【删除当前数据库】db.集合名.drop()
【删除集合】exit;
【退出MongoShell】show collections
【查看当前数据库集合列表】
node.js连接MongoDB数据库
const { MongoClient } = require("mongodb");
// 创建用于连接mongodb服务器的客户端
const client = new MongoClient("mongodb://localhost:27017");
const getCollection = async (cname) => {
// 完成与服务器连接
await client.connect();
// 获取my_test数据库
const myTest = client.db("my_test");
// 获取my_test数据库中集合
const collection = myTest.collection(cname);
return collection;
}
const main = async () => {
const cc = await getCollection("cc");
// 插入单个文档,返回结果中包含该文档默认ID
// const r = await cc.insertOne({ name: "test233", age: 30 });
// console.log(r);
// 插入多个文档,返回结果中包含插入个数与插入的多个文档默认ID
// const r = await cc.insertMany([{ name: "node1", age: 30 }, { name: "node2", age: 10 },
// { name: "node3", age: 12 }, { name: "node4", age: 15 }]);
// console.log(r);
// find()获取到的是游标,通过toArray()获取结果
// const ccData = await cc.find().toArray();
// console.log(ccData);
// findOne()查询单个文档数据,无需转换成数组即可获得数据
// const ccData = await cc.findOne({ name: "node1" });
// console.log(ccData);
// 修改单个文档,返回结果中包含匹配数量和修改数量
// const r = await cc.updateOne({ name: "node1" }, { $set: { age: 24 } });
// console.log(r);
// 修改多个文档,返回结果中包含匹配数量和修改数量
// const r = await cc.updateMany({ age: { $gte: 24 } }, { $set: { age: 28 } });
// console.log(r);
// 删除单个文档,返回结果中包含删除数量
// const r = await cc.deleteOne({ name: "node1" });
// console.log(r);
// 删除多个文档,返回结果中包含删除数量
// const r = await cc.deleteMany({ age: { $gte: 19 } });
// console.log(r);
}
main().finally(() => {
// 关闭客户端与服务器端连接
client.close();
})