连接数据库
npm i mongodb
const { MongoClient } = require("mongodb");
const client = new MongoClient("mongodb的地址");
const main = async () => {
//开始连接
await client.connect();
const db = client.db(数据库名字);
const cc = db.collection(集合名字);
//查找所有数据
let d = await cc.find();//游标数据
console.log(await d.toArray());//具体文档数据
};
//断开连接
main().finally(() => client.close());
数据存储结构
将整个 mongodb 想象成一个 json 格式的文件,不同的库就是不同的内容。
{
//数据库(Database)
"admin":{
//集合(Collection) 对应关系型数据库的表
"集合1":{
//文档(Document) 对应关系型数据库一行一行的数据
{
//数据字段
"id":1,
"username":'aaa'
}
}
},
"config":{
...
},
"local":{
}
}
库操作
-
查看本地数据库
show dbs -
切换到某个数据库
use 数据库名字 -
查看当前所在的数据库
db
-
退出数据库(终端)
exit; quit(); ctrl+c
-
mongodb 可以切换到不存在的库,但必须存数据才能创建出来
创建数据: db.集合.insert({x:1,y:2})
-
创建数据注意 数据库名字不区分大小写,尽可能小写,不要大小写和特殊符号,
-
删除库,必须在库上面才能删除 db.dropDatabase()
集合操作
- 创建集合
db.集合.insert({x:1,y:2})
-
集合名字注意
不能是 $ . 等特殊符号 -
查看所有集合
show collections -
删除集合
db.集合.drop()
文档操作
-
文档的 key 命名 尽量跟写代码的变量命名一样
-
增
db.集合名字.insertOne/insertMany
//一条 const i = await cc.insertOne({ username: "nameA", age: "123" }); console.log(i); //多条 const j = await cc.insertMany([ { username: "nameB", age: 13, }, { username: "nameC", age: 111, }, ]); console.log(j);
-
删
db.集合名字.deleteOne/deleteMany
<!-- $lt:小于 $gt:大于--> const s = await cc.deleteOne({age:{$lt:15}}) console.log(s); const s1 = await cc.deleteMany({age:{$gt:50}}) console.log(s1);
-
改
db.集合名字.updateOne/updateMany
const g = await cc.updateOne( { age: { $gt: 15 } }, { $set: { username: "修改" } } ); console.log(g); const g1 = await cc.updateMany( { age: { $lt: 15 } }, { $set: { username: "修改小于" } } ); console.log(g1);
-
查
db.集合名字.findOne/find
const d = await cc.find(); //游标数据 console.log(await d.toArray()); const d1 = await cc.findOne({ age: { $gt: 15 } }); console.log(d1); //一条数据直接展示,多条游标