nodejs(express) + mongoDB 连接数据库实现增删改查

1,945 阅读5分钟

1.mongoDB

下载地址www.mongodb.com/try/downloa…  我下的是这个版本,下载完成后

双击开始安装(以下几步注意,其他全部next):

这里我选择的是自定义安装,选择你想安装到的位置

点击ok,然后点击next 点击之后 新版的Mongodb会主动在安装目录下创建log和data文件,这相比较早期版本有了改善 ,早期需要自己手动创建 但我们仍然需要在data下创建db文件夹 笔者的在C:\MongoDB\data\db(记住一定要再建个db文件夹)

------------------------------------------------------------------------------------------------

重重之重(下图一定要取消安装,compass客户端可视化界面我会另外下载。你要是选中了,那就是安装了一天也完成不了)

最后安装成功会弹出一个警告框,选中 Ignore 就好

至此,MongoDB客户端已经安装完毕

由于我们已经创建了C:\MongoDB\data\db文件夹 这里就不需要再创建 否者还要创建 然后在cmd进入C:\MongoDB\bin目录下(在windows资源管理器中shift+右键打开powershell也行)然后执行mongod -dbpath C:\MongoDB\data\db 命令 如下图(这条命令是开启服务,它会一直运行,只要你要使用Mongodb,这个窗口就不能关)

然后在bin目录下另外打开一个cmd 在bin目录下执行mongo命令,之后就能正常使用了!!!

正如你所看到的,以上步骤已经可以完全实现使用MongoDB的需求。你要是想的话可以继续安装可视化界面,毕竟操作起来更方便。

bat批处理实现启动mongodb脚本

  新建文本   写入

   cd D:\mongDB\bin 

   mongod --dbpath "D:\mongDB\data\db"

地址路径根据自己实际路径,写入之后将文件后缀改为bat 即可

原文地址:点我传送

2.express

npm install express -generator -g  

//生成项目
express myExpress(项目名)

cd 进入文件夹

cd myExpress

初始化

npm install

启动项目

npm start

连接mongodb数据库

npm install mongodb --save  //安装mongodb

创建数据库

  要在 MongoDB 中创建一个数据库,首先我们需要创建一个 MongoClient 对象,然后配置好指定的 URL 和 端口号。

如果数据库不存在,MongoDB 将创建数据库并建立连接,例如我们创建一个 test 数据库:

MongoDB.js

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

MongoClient.connect(url, function(err, db) {
    if (err) throw err;
    console.log("数据库已创建!");
    db.close();
});

我们可以使用 createCollection() 方法来创建集合:

修改 MongoDB.js

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/test";
MongoClient.connect(url, function (err, db) {
    if (err) throw err;
    console.log('数据库已创建');
    var dbase = db.db("test");
    dbase.createCollection('info_test', function (err, res) {
        if (err) throw err;
        console.log("创建集合 info_test!");
        db.close();
    });
});

数据库操作:增删改查

增:

  • 插入一条数据:insertOne();
  • 插入多条数据:insertMany()。

以下实例我们连接数据库 test 的 info_test 表,并插入一条数据,使用 insertOne():

add.js

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

MongoClient.connect(url, function(err, db) {
    if (err) throw err;
    var dbo = db.db("test");
    var user = {
        name: "Liu",
        age: "24"
    };
    dbo.collection("info_test").insertOne(user, function(err, res) {
        if (err) throw err;
        console.log("数据插入成功!");
        db.close();
    });
});

接下来我们使用 insertMany() 来插入多条数据。

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/test";
MongoClient.connect(url, function(err, db) {
    if (err) throw err;
    var dbo = db.db("test");
    var user = [{
        name: "Zhao",
        age: "25"
    }, {
        name: "Sun",
        age: "18"
    }, {
        name: "Du",
        age: "23"
    }];
    dbo.collection("info_test").insertMany(user, function(err, res) {
        if (err) throw err;
        console.log("插入" + res.insertedCount + "条数据成功!");
        db.close();
    });
});

删:

  • 删除一条数据:deleteOne();
  • 删除多条数据:deleteMany()。

将 name 为 "Sun" 的数据删除:

delete.js

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/test";
MongoClient.connect(url, function(err, db) {
    if (err) throw err;
    var dbo = db.db("test");
    // 查询条件
    var whereStr = {
        "name": "Sun"
    };
    dbo.collection("info_test").deleteOne(whereStr, function(err, res) {
        if (err) throw err;
        console.log("数据删除成功!");
        db.close();
    });
});

将 age 为 23 的数据都删除:

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/test";
MongoClient.connect(url, function(err, db) {
    if (err) throw err;
    var dbo = db.db("test");
    // 查询条件
    var whereStr = {
        age: "23"
    };
    dbo.collection("info_test").deleteMany(whereStr, function(err, res) {
        if (err) throw err;
        console.log(res.result.n + " 条文档被删除");
        db.close();
    });
});

改:

  • 修改一条数据:updateOne();
  • 修改多条数据:updateMany()。

将 name 为 Liu 的 age 值改为 18:

update.js

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/test";
MongoClient.connect(url, function(err, db) {
    if (err) throw err;
    var dbo = db.db("test");
    // 查询条件
    var whereStr = {
        "name": "Liu"
    };
    // 修改为:
    var updateStr = {
        $set: {
            "age": "18"
        }
    };
    dbo.collection("info_test").updateOne(whereStr, updateStr, function(err, res) {
        if (err) throw err;
        console.log("数据修改成功!");
        db.close();
    });
});

修改多条数据,将 age 为 18 的数据 name 值改为 Wang:

update.js

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/test";
MongoClient.connect(url, function(err, db) {
    if (err) throw err;
    var dbo = db.db("test");
    // 查询条件
    var whereStr = {
        "age": "18"
    };
    // 修改为:
    var updateStr = {
        $set: {
            "name": "Wang"
        }
    };
    dbo.collection("info_test").updateMany(whereStr, updateStr, function(err, res) {
        if (err) throw err;
        console.log(res.result.nModified + "条数据修改成功!");
        db.close();
    });
});

查:

可以使用 find() 来查找数据, find() 可以返回匹配条件的所有数据,如果未指定条件,find() 返回集合中的所有数据。

read.js

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/test";
MongoClient.connect(url, function(err, db) {
    if (err) throw err;
    var dbo = db.db("test");
    // 查询所有数据
    dbo.collection("info_test").find({}).toArray(function(err, result) {
        if (err) throw err;
        console.log(result);
        db.close();
    });
});

带条件查询,查询所有 age 为 18 的数据:

update.js

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/test";
MongoClient.connect(url, function(err, db) {
    if (err) throw err;
    var dbo = db.db("test");
    // 查询条件
    var whereStr = {
        "age": "18"
    }
    dbo.collection("info_test").find(whereStr).toArray(function(err, result) {
        if (err) throw err;
        console.log(result);
        db.close();
    });
});

排序:

使用 sort() 方法,该方法接受一个参数,规定是升序(1)还是降序(-1)。

例如按照 age 值从小到大排序:

sort.js

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/test";
MongoClient.connect(url, function(err, db) {
    if (err) throw err;
    var dbo = db.db("test");
    // 排序条件
    var mySort = {
        "age": 1
    }
    dbo.collection("info_test").find().sort(mySort).toArray(function(err, result) {
        if (err) throw err;
        console.log(result);
        db.close();
    });
});

查询分页:

如果要设置指定的返回条数可以使用 limit() 方法,该方法只接受一个参数,指定了返回的条数。

limit.js

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/test";
MongoClient.connect(url, function(err, db) {
    if (err) throw err;
    var dbo = db.db("test");
    dbo.collection("info_test").find().limit(2).toArray(function(err, result) {
        if (err) throw err;
        console.log(result);
        db.close();
    });
});

如果要指定跳过的条数,可以使用 skip() 方法。

skip.js

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/test";
MongoClient.connect(url, function(err, db) {
    if (err) throw err;
    var dbo = db.db("test");
    dbo.collection("info_test").find().skip(2).limit(2).toArray(function(err, result) {
        if (err) throw err;
        console.log(result);
        db.close();
    });
});

删除集合

我们可以使用 drop() 方法来删除集合:

drop.js

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";
MongoClient.connect(url, function(err, db) {
    if (err) throw err;
    var dbo = db.db("test");
    dbo.collection("info_test").drop(function(err, delOK) {
        if (err) throw err;
        if (delOK) console.log("集合删除成功!");
        db.close();
    });
});

原文地址:juejin.cn/post/684490…

刚开始看nodeJs 记录一下