nodejs——MongoDB模块

MongoDB 是一个面向文档,schema 无关(schema-less)的数据库,它非常适合于 Node.js 应用以及云端部署。
与 MySQL 及 PostgreSQL 是根据固定的结构设计(schema)将数据存储在表中不同,MongoDB 可以将任意类型的文档数据存储到集合中(schema 无关),这也是 MongoDB 最有意思的特性之一。

mongodb 安装

通过官网的下载页面就能获取到 MongoDB。与此同时,你可以看一下 MongoDB 的入门指南。
安装完后打开 mongo 客户端,输入 mongo 后,显示版本号表示安装成功。

安装 MongoDB 驱动

npm install mongodb

创建数据库

创建 mydb 数据库

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/mydb";

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  console.log("Database created!");
  db.close();
});

创建集合

创建 customers 集合

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("mydb");
  dbo.createCollection("customers", function(err, res) {
    if (err) throw err;
    console.log("Collection created!");
    db.close();
  });
});

增删改查

添加数据
要将记录或 MongoDB 中所称的文档插入到集合中,我们使用insertOne() 方法。MongoDB 中的文档与 MySQL 中的记录相同,insertOne() 方法的第一个参数是一个对象,包含要插入的文档中每个字段的名称和值。

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("mydb");
  var myobj = { name: "Company Inc", address: "Highway 37" };
  dbo.collection("customers").insertOne(myobj, function(err, res) {
    if (err) throw err;
    console.log("1 document inserted");
    db.close();
  });
});

修改数据
您可以使用updateOne() 方法更新记录或MongoDB中所称的 document。updateOne() 方法的第一个参数是定义要更新的文档的 query 对象。

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("mydb");
  var myquery = { address: "Highway 37" };
  var newvalues = { $set: {name: "Mickey", address: "Canyon 123" } };
  dbo.collection("customers").updateOne(myquery, newvalues, function(err, res) {
    if (err) throw err;
    console.log("1 document updated");
    db.close();
  });
});

查询数据
要从MongoDB的集合中选择数据,我们可以使用findOne()方法。findOne() 方法返回选择中的第一个匹配项。findOne() 方法的第一个参数是一个 query 对象。

// 查询一条数据
MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("mydb");
  dbo.collection("customers").findOne({}, function(err, result) {
    if (err) throw err;
    console.log(result.name);
    db.close();
  });
});

在集合中查找文档时,可以使用查询对象筛选结果。
find() 方法的第一个参数是一个查询对象,用于限制搜索。

// 查找 documents 里地址为 Canyon 123 的数据
MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("mydb");
  var query = { address: "Canyon 123" };
  dbo.collection("customers").find(query).toArray(function(err, result) {
    if (err) throw err;
    console.log(result);
    db.close();
  });
});

删除数据
要删除记录或MongoDB中所称的文档,我们使用deleteOne() 方法。deleteOne() 方法的第一个参数是定义要删除哪个文档的 query 对象。

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("mydb");
  var myquery = { address: 'Canyon 123' };
  dbo.collection("customers").deleteOne(myquery, function(err, obj) {
    if (err) throw err;
    console.log("1 document deleted");
    db.close();
  });
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码上行舟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值