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();
})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值