|
MongoDB 是一个基于分布式文件存储的数据库
注意,下面介绍的是 node.js 操作 mongodb 数据库
安装mongodb
npm install mongodb --save
或则
yarn install mongodb --save
连接数据库import mongodb from "mongodb";
const mongoserver = new mongodb.Server('ip', 27017, {
//数据库连接失败时自动重连
"auto_reconnect" : true,
//设置连接池数量
"poolSize" : 10
});
const db=new mongodb.Db('test', mongoserver, {
// 关注写
// 设置 w = -1 是 mongodb 1.2 后的强制要求
w : -1
});
db.open((err)=>{
if(err){
console.log(result);
}else{
db.close();
console.log("连接成功");
}
}); |
上面的代码执行完后输出了 "连接成功" 就证明连接上数据库了
连接数据库的代码我们需要写成一个模块,让使用的地方直接导入这个模块即可
mongo.js
连接数据库
[code[
import mongodb from "mongodb";
const mongoserver = new mongodb.Server('ip', 27017, {
//数据库连接失败时自动重连
"auto_reconnect" : true,
//设置连接池数量
"poolSize" : 10
});
const db=new mongodb.Db('test', mongoserver, {
// 关注写
// 设置 w = -1 是 mongodb 1.2 后的强制要求
w : -1
});
function mongo(){
return new Promise(function(resolve,reject){
db.open(function(err){
if(err){
return reject(err);
}
resolve(db);
});
});
}
export { mongo };[/code]使用 Promise 解决回调函数,返回一个 promise 对象回去,后面的数据库操作都不用处理回调函数
添加
//导入链接数据库的模块,上面的代码
import { mongo } from "./mongo.js";
mongo()
// db : 本次链接的数据库对象
.then((db)=>{
// foo : 需要操作的表
const foo = db.collection("foo");
let data = {
"name" : "张三",
"age" : "22",
"sex" : "男"
};
foo.install(data,(error,result)=>{
//关闭本次数据链接
db.close();
if(error){
//添加失败
}else{
//添加成功,本次添加数据的信息都在 result 对象上
}
});
}) |
添加数据还有一个方法 save, 相对 install,save 更好用,假如使用 install 插入的数据遇到 id 冲突后会出错,但是 save 会执行修改操作,把数据覆盖上去
import { mongo } from "./mongo.js";
mongo()
.then((db)=>{
const foo = db.collection("foo");
let data = {
"name" : "张三",
"age" : "22",
"sex" : "男"
};
// 使用 svae 保存数据
foo.save(data,(error,result)=>{
// ....
});
}) |
查询
import { mongo } from "./mongo.js";
mongo()
.then((db)=>{
const foo = db.collection("foo");
// 使用 find 查询当前库下的所有数据
// 注意要使用 toArray 讲结果转换为数组
// 所有的查询返回的结果都是一个 array 格式
foo.find().toArray((error,result)=>{
//关闭本次数据链接
db.close();
if(error){
//查询失败
}else{
//查询成功
console.log(result); //打印查询到的数据
}
});
}) |
条件查询
import { mongo } from "./mongo.js";
mongo()
.then((db)=>{
const foo = db.collection("foo");
let where = {
"name" : "张三"
};
//根据查询条件查询数据
foo.find(where).toArray((error,result)=>{
// ...
});
}) |
修改
import { mongo } from "./mongo.js";
mongo()
.then((db)=>{
const foo = db.collection("foo");
let where = {
"name" : "张三"
};
var updateData = {
$set: {
"age" : "23"
}
};
//根据查询条件修改数据
foo.update(where, updateData, (error,result)=>{
//关闭本次数据链接
db.close();
if(error){
//修改失败
}else{
//修改成功
}
}); |
删除
import { mongo } from "./mongo.js";
mongo()
.then((db)=>{
const foo = db.collection("foo");
let where = {
"name" : "张三"
};
//根据查询条件删除数据
foo.remove(where, (error,result)=>{
//关闭本次数据链接
db.close();
if(error){
//删除失败
}else{
//删除成功
}
}); |
程序猿的技术大观园:www.javathinker.net
|
网站系统异常
系统异常信息 |
Request URL:
http://www.javathinker.net/WEB-INF/lybbs/jsp/topic.jsp?postID=3729
java.lang.NullPointerException
如果你不知道错误发生的原因,请把上面完整的信息提交给本站管理人员。
|
|