连接
首先,需要在工作目录下安装一个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();
})