MongoDB
MongoDB的运行
- 下载、安装好MongoDB,并在MongoDB的根目录下创建一个data目录,然后在data目录下创建db目录 (MongoDB将数据目录存储在db目录下,若无此操作,将无法运行MongoDB)
image - cd到MongoDB的安装目录下的bin目录中,运行
F:\MongoDB\bin\mongod --dbpath F:\data\db
// 具体路径根据自己的安装情况来
image
- 然后双击bin目录下的mongo.exe运行MongoDB,成功运行之后访问 http://localhost:27017/ 显示以下提示即为运行成功
image
Node
在项目中安装MongoDB
npm install mongodb
插入数据
关键语句
insert(document)
参数说明
- document:需要插入的数据,键值对的形式
代码
// 引入mongodb模块
var MongoClient = require('mongodb').MongoClient;
// 创建要连接的数据库对象
var DB_CONN_STR = 'mongodb://localhost:27017/index';
var insertData = function (db, callback) {
var collection = db.collection('person'); // 连接将要操作的表(person为数据库index中的一个表)
// 要插入的数据
var data = [{
"name": "Han",
"age": "21"
}, {
"name": "ZLHan",
"age": "23"
}];
// 执行插入
collection.insert(data, function (err, result) {
if (err) {
console.log('Error:' + err);
return;
}
callback(result);
})
}
MongoClient.connect(DB_CONN_STR, function (err, db) {
console.log('连接成功!');
insertData(db, function (result) {
console.log(result);
db.close();
})
})
效果展示
以下是Robo 3T下的效果图
image查询数据
关键语句
find(query, projection)
参数说明
- query:
- projection: 返回结果,值为0的不反回,值为1的返回,默认返回所有键如:
{name: 0, _id: 0} 表person有name、age和_id(默认带有)三个属性,此处只返回age属性
代码
// 查询数据
// 引入mongodb模块
var MongoClient = require('mongodb').MongoClient;
// 创建要连接的数据库对象
var DB_CONN_STR = 'mongodb://localhost:27017/index';
var selectData = function (db, callback) {
var collection = db.collection('person'); // 连接将要操作的表(person为数据库index中的一个表)
// 查询条件
var where = {'name': 'Han'}
// 查询
collection.find(where, {name: 0, _id: 0}).toArray(function (err, result) {
if (err) {
console.log('Error:' + err);
return
}
callback(result);
});
}
MongoClient.connect(DB_CONN_STR, function (err, db) {
console.log('连接成功!');
selectData(db, function (result) {
console.log(result);
db.close();
})
})
效果展示
image更新数据
关键语句
update(<query>, <update>, {
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
})
参数说明
- query: 更新数据的条件
- update: 更新的数据、对象
- upsert: (可选)若update对象不存在,是否允许插入,默认false
- multi: (可选)是否允许更新由query查询出的所有记录,默认false(只更新第一条记录)
- writeConcern: (可选)抛出异常的级别
代码
// 更新数据
// 引入mongodb模块
var MongoClient = require('mongodb').MongoClient;
// 创建要连接的数据库对象
var DB_CONN_STR = 'mongodb://localhost:27017/index';
var updateData = function (db, callback) {
var collection = db.collection('person'); // 连接将要操作的表(person为数据库index中的一个表)
// 更新条件
var where = {'name': 'Han'};
// 更新数据
var updateData = {$set: {"age" : 222}};
collection.update(where, updateData, function (err, result) {
if (err) {
console.log('Error:' + err);
return
}
callback(result);
});
}
MongoClient.connect(DB_CONN_STR, function (err, db) {
console.log('连接成功!');
updateData(db, function (result) {
console.log(result);
db.close();
})
})
image
删除数据
关键语句
remove(<query>, <justOne>)
若MongoDB的版本是2.6以后:
remove(<query>,
{
justOne: <boolean>,
writeConcern: <document>
}
)
参数说明
- query :(可选)删除的文档的条件。
- justOne : (可选)如果设为 true 或 1,则只删除一个文档。
- writeConcern :(可选)抛出异常的级别。
代码
// 删除数据
// 引入mongodb模块
var MongoClient = require('mongodb').MongoClient;
// 创建要连接的数据库对象
var DB_CONN_STR = 'mongodb://localhost:27017/index';
var deleteData = function (db, callback) {
var collection = db.collection('person'); // 连接将要操作的表(person为数据库index中的一个表)
// 删除条件
var where = {'name': '小明'};
// 删除
collection.remove(where, function (err, result) {
if (err) {
console.log('Error:' + err);
return
}
callback(result);
});
}
MongoClient.connect(DB_CONN_STR, function (err, db) {
console.log('连接成功!');
deleteData(db, function (result) {
console.log(result);
db.close();
})
})
网友评论