最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

mongoDB中node中的增删改查的学习

来源:动视网 责编:小采 时间:2020-11-27 19:33:09
文档

mongoDB中node中的增删改查的学习

mongoDB中node中的增删改查的学习:这篇文章给大家介绍的文章内容是关于mongoDB中node中的增删改查的学习,有很好的参考价值,希望可以帮助到有需要的朋友。准备首先,要在node中使用mongoDB,需要安装MongoDB Driver,命令如下:npm install mongodb --savegithub地址:n
推荐度:
导读mongoDB中node中的增删改查的学习:这篇文章给大家介绍的文章内容是关于mongoDB中node中的增删改查的学习,有很好的参考价值,希望可以帮助到有需要的朋友。准备首先,要在node中使用mongoDB,需要安装MongoDB Driver,命令如下:npm install mongodb --savegithub地址:n
这篇文章给大家介绍的文章内容是关于mongoDB中node中的增删改查的学习,有很好的参考价值,希望可以帮助到有需要的朋友。

准备

首先,要在node中使用mongoDB,需要安装MongoDB Driver,命令如下:npm install mongodb --save
github地址:node-mongodb-native

同时,记得开启mongoDB服务。

下面代码将在数据库demodb中tasks集合里面插入了一条文档,并且在控制台打印出了该文档的id。

const MongoClient = require('mongodb').MongoClient

const assert = require('assert')
const url = 'mongodb://localhost:27017'
const dbName = 'demodb'

// 增
MongoClient.connect(url, function(err, client) {
 assert.equal(null, err)
 console.log("Connected successfully to server")

 const db = client.db(dbName)
 var tasks = db.collection('tasks') // 没有则创建
 tasks.insertOne(
 {
 "project": "task1",
 "description": "task1 description."
 },
 {safe: true},
 function(err, documents) {
 if (err) throw err;
 console.log(documents.insertedId);
 }
 );

 client.close()
})

运行程序,发现在控制台打印出了如下结果

Connected successfully to server
5b59d53ae3d895184824586b

这个返回的5b59d53ae3d895184824586b是MongoDB的文档标识符,它是唯一的,它的本质是二进制JSON(即BSON),BSON是MongoDB用来交换数据的主要数据格式,MongoDB服务器用它代替JSON交换数据。大多数情况下,它更节省空间,解析起来也更快。
声明的{safe: true}表明,等数据库操作完成之后,才执行回调回调函数。

注意:这里为了方便,没有开启授权模式,所以,在登录url中不需要用户名和密码也可以在登录随便进行增删改查。但在产品环境请记得务必开启授权模式。

下面代码将在数据库demodb中tasks集合找到project为task1的这条文档,并删除它。

// 删
MongoClient.connect(url, function(err, client) {
 assert.equal(null, err)
 console.log("Connected successfully to server")

 const db = client.db(dbName)
 var tasks = db.collection('tasks')
 tasks.deleteOne(
 {
 "project": "task1"
 },
 function(err, result) {
 assert.equal(err, null);
 assert.equal(1, result.result.n);
 console.log("Removed the document");
 }
 );

 client.close()
})

注意:如果tasks集合中有多条project为task1的文档,那么,也只会删除找到的第一天文档。

下面代码将在数据库demodb中tasks集合找到project为task1的这条文档,并更新它。

// 改
MongoClient.connect(url, function(err, client) {
 assert.equal(null, err)
 console.log("Connected successfully to server")

 const db = client.db(dbName)
 var tasks = db.collection('tasks')
 tasks.updateOne(
 {
 "project": "task1"
 },
 { $set: { "project" : "task999" } },
 {safe: true},
 function(err, result) {
 assert.equal(err, null);
 assert.equal(1, result.result.n);
 console.log("Updated the document");
 }
 );

 client.close()
})

注意:如果在tasks集合没有找到project为task1的文档,程序将会抛出断言错误,如下:

4093868883-5b59db2263dd3_articlex.png

下面代码将在数据库demodb中tasks集合找到所有文档,并打印到控制台。

// 查
MongoClient.connect(url, function(err, client) {
 assert.equal(null, err)
 console.log("Connected successfully to server")

 const db = client.db(dbName)
 var tasks = db.collection('tasks')
 tasks.find().toArray((err, docs) => {
 console.log(docs)
 assert.equal(null, err) // err 不等于null, 则在控制台打印err
 // assert.equal(3, docs.length) // 记录不等于3条, 则在控制台打印记录条数
 })
 client.close()
})

find()方法找到所有文档,toArray()将结果转换成数组形式,运行程序,结果如下:

1464648781-5b59dc657872b_articlex.png

小结

虽然上面四个小程序略显简单,但是不积跬步,无以至千里,如果你真的掌握了基本的增删改查,那么,掌握复杂的应用也只是时间问题了。

文档

mongoDB中node中的增删改查的学习

mongoDB中node中的增删改查的学习:这篇文章给大家介绍的文章内容是关于mongoDB中node中的增删改查的学习,有很好的参考价值,希望可以帮助到有需要的朋友。准备首先,要在node中使用mongoDB,需要安装MongoDB Driver,命令如下:npm install mongodb --savegithub地址:n
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top