Skip to content
快速预览

node连接mongoDB

✍️ w 🕒 2023-06-14 11:40:32(a year ago) 🔗 B.NodeJS学习 服务端 node mongoDB

可以通过客户端连接数据库,在实际开发的过程中需要代码和数据库进行连接,因此如何通过node 连接 mongoDB

使用 npm mongodb 进行连接

官网提供的参考 https://www.mongodb.com/developer/languages/ 找到对应 语言推荐包

在使用上查找的api 和使用方式基本和 mongoDB 直接通过shell 脚本操作的形式是一样的。只要去看mongoDB shell 一些curd 指令即可上手

shell
npm install mongodb
js
const { MongoClient, ObjectID } = require('mongodb')

const uri = 'mongodb://127.0.0.1:27017'

// 连接数据库
const client = new MongoClient(uri)

async function run() {
	try {
		// 连接数据库
		await client.connect()

		// 选择数据库
		const db = client.db('test')

		// 选择集合
		const collection = db.collection('documents')

		// 插入文档
		// const insertResult = await collection.insertMany([
		// 	{
		// 		name: 'w',
		// 		age: 18,
		// 		hobbies: ['吃', '睡觉'],
		// 	},
		// 	{
		// 		name: 'ww',
		// 		age: 18,
		// 		hobbies: ['吃', '睡觉'],
		// 	},
		// ])
		// /**
		//  * 打印插入返回的信息
		//  *{
		//  *		acknowledged: true,
		//  *		insertedCount: 2,
		//  *	insertedIds: {
		//  *		'0': new ObjectId("64756522a8b1ea25fc59b62b"),
		//  *		'1': new ObjectId("64756522a8b1ea25fc59b62c")
		//  *	}
		//  *}
		//  * */
		// console.log(insertResult)

		// 查询文档

		// 查看
		/**
		 * 注意的是 collection.find({}).toArray() 是一个整体 分开写的话
		 * const findResult =  collection.find({})
		 * console.log( await findResult.toArray())
		 */
		// const findResult = await collection.find({}).toArray()
		// console.log(findResult)

		// 只查看一条
		// const oneFindResult = await collection.findOne({ name: 'w' })
		// console.log(oneFindResult)

		// 删除文档时候要注意使用 id 时候需要使用 ObjectID 包裹
		// const ret = await collection({
		//   _id: ObjectID('5fa5164f95060000060078b1')
		// })
		// console.log(ret)

		// 更新文档 使用参看mongodb 语法用法
		const ret = await collection.updateOne(
			{
				_id: ObjectID('5fa5164f95060000060078af'),
			},
			{
				$set: {
					qty: 100,
				},
			}
		)
	} catch (e) {
		console.log(e)
	} finally {
		// 关闭数据库连接
		await client.close()
	}
}

run()

// 开始连接
// client.connect().then(() => {
//   // 连接成功了
// }).catch(() => {
//   console.log('连接失败了')
// })

更多用法参考

使用 mongoose

Mongoose 是一个对象文档模型库,官网 http://www.mongoosejs.net/

js
//1. 安装 mongoose
//2. 导入 mongoose
const mongoose = require('mongoose');

//设置 strictQuery 为 true你可以将 Mongoose 的 strictQuery 选项设置为 true,这将强制 Mongoose
// 检查查询条件中的所有字段是否已定义。如果查询条件中存在未定义的字段,则 Mongoose 会引发一个错误
mongoose.set('strictQuery', true);

//3. 连接 mongodb 服务                        数据库的名称
mongoose.connect('mongodb://127.0.0.1:27017/bilibili');

//4. 设置回调
// 设置连接成功的回调  once 一次   事件回调函数只执行一次
mongoose.connection.once('open', () => {
  console.log('连接成功');
  // app.listen(8080);
});

// 设置连接错误的回调
mongoose.connection.on('error', () => {
  console.log('连接失败');
}); 

//设置连接关闭的回调
mongoose.connection.on('close', () => {
  console.log('连接关闭');
}); 

//关闭 mongodb 的连接
// setTimeout(() => {
//   mongoose.disconnect();
// }, 2000)

Released under the MIT License.