您好,欢迎访问一九零五行业门户网

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

这篇文章给大家介绍的文章内容是关于mongodb中node中的增删改查的学习,有很好的参考价值,希望可以帮助到有需要的朋友。
准备首先,要在node中使用mongodb,需要安装mongodb driver,命令如下:npm install mongodb --save
github地址:node-mongodb-native
同时,记得开启mongodb服务。
增下面代码将在数据库demodb中tasks集合里面插入了一条文档,并且在控制台打印出了该文档的id。
const mongoclient = require('mongodb').mongoclientconst 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 server5b59d53ae3d895184824586b
这个返回的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的文档,程序将会抛出断言错误,如下:
查下面代码将在数据库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()将结果转换成数组形式,运行程序,结果如下:
小结虽然上面四个小程序略显简单,但是不积跬步,无以至千里,如果你真的掌握了基本的增删改查,那么,掌握复杂的应用也只是时间问题了。
相关推荐:
mongodb中用户与权限的介绍
以上就是mongodb中node中的增删改查的学习的详细内容。
其它类似信息

推荐信息