连接

首先,需要在工作目录下安装一个npm提供的mongodb包来连接mongodb

npm i mongodb

然后是连接数据库,如果没有,则创建一个数据库,操作指令如下:

var MC = require('mongodb').MongoClient;//引入模块
const url = 'mongodb://localhost:27017/';// '/'可不要
//或const url = 'mongodb://localhost:27017/test';    
//test为数据库名,此处写了下方可以直接var dbase=client.db();   
MC.connect(url, function (err, client) {
    if (err) throw err;
    var dbase = client.db('aaa');
    console.log("数据库已创建!");
    dbase.createCollection('site', function (err, r) {
        if (err) throw err;
        console.log('创建集成功');
        client.close();
    });
});

这样就创建了名为'aaa'的数据库,并在其中创建了名为'site'的数据集。

对数据集操作

所有的操作均需要先连接数据库,即MC.connect(url,function(err,client))后面省略

MC.connect(url, function (err, client) {//连接/创建数据库
    if (err) throw err;
    console.log(client.db('test'));//创建/链接的数据库
    console.log("数据库已创建!");
    var dbase = client.db('test');//可直接var dbase = client.db().这里和上面url必有一处指定数据库
    /*
    |-------------------------------------------------------
    | 数据
    |-------------------------------------------------------
    */
    var mydata = { title: "test", content: '我是dry' };//要插入的数据
    var mydatas = [//要插入的多条数据
        { name: '菜鸟工具', url: 'https://c.runoob.com', type: 'cn' },
        { name: 'Google', url: 'https://www.google.com', type: 'en' },
        { name: 'Facebook', url: 'https://www.google.com', type: 'en' }
    ]
    //1.单条数据
    dbase.createCollection('site', function (err, res) {//创建集
        if (err) throw err;
        console.log('创建集合!');
        client.close();
    });
    dbase.collection('site').insertOne(mydata, function (err, res) {
        if (err) throw err;
        console.log('文档插入成功');
        client.close();
    });
    //2.多条数据
    dbase.collection('site').insertMany(mydatas, function (err, res) {
        if (err) throw err;
        console.log("插入的文档数量为" + res.insertedCount);
        client.close();
    });
    
})
    //查询,{}中为要查找的内容,为空则返回集合中所有的数据
    dbase.collection('site').find({ name: 'Google' }).toArray(function (err, result) {
        if (err) throw err;
        console.log(result);
        client.close();
    })
  • 更新
    //updateOne只会更新查找到的符合条件的第一条数据
    var whereStr = { name: 'Google' };//查询条件
    var updateStr = { $set: { 'url': 'https://www.dry.com' } };//要更新的数据
    var whereStr2 = { name: 'Facebook' };
    var updateStr2 = { $set: { name: 'Dry', url: null } }
    dbase.collection('site').updateOne(whereStr, updateStr, function (err, res) {
        if (err) throw err;
        console.log("更新Google(第一条)成功!");
        client.close();
    })
    dbase.collection('site').updateOne(whereStr2, updateStr2, function (err, res) {
        if (err) throw err;
        console.log("更新Fackbook成功!");
        client.close();
    })
    //更新多条数据用updateMany
    const site = dbase.collection('site');//数据集保存到变量中
    site.updateMany({ name: 'Google' }, { $set: { name: 'HHH' } }, function (err, res) {
        if (err) throw err;
        console.log(`更新${res.result.nModified}条名为Goole的数据为HHH成功!`);//res.result.nModified为更新的条数
        client.close();
    })
    //在控制台打印出数据集中的数据
    site.find().toArray(function (err, result) {
        if (err) throw err;
        console.log(result);
    })
    const site = dbase.collection('site');
    //删除一条
    var delData = { name: 'Goo' };//查询条件
    site.deleteOne(delData, function (err, obj) {
        if (err) throw err;
        console.log("文档删除成功");
        console.log(obj.result);
        client.close();
    })
    //删除多条数据
    site.deleteMany({ title: 'test' }, function (err, obj) {
        if (err) throw err;
        console.log(`${obj.result.n}条文档被删除`);
        console.log(obj.result);
    })
  • 删除集合
    //删除集合
    dbase.collection('site').drop(function (err, delOK) {
        if (err) throw err;
        if (delOK) console.log("集合已删除");
        client.close();
    })