要在nodejs
操作mongodb
,要用到官方提供的包
$ npm install mongodb --save-dev
连接mongodb
使用mongodb
库里面的MongoClient
对象
const Koa = require('koa');
var Router = require('koa-router');
const router = new Router();
const app = new Koa();
// 数据库地址
// 如果有用户密码,格式为 mongodb://user:pwd@path/
const DTABAE_URL = 'mongodb://koa:123456@127.0.0.1:27017/'
// 引入数据库
const MongoClient = require('mongodb').MongoClient
router.get('/enter', async (ctx, next) => {
// 连接
let client = await MongoClient.connect(DTABAE_URL)
if (client) {
//1.获取koa数据库 2.获取集合collection 3.插入一条数据
client.db('koa').collection('collection').insertOne({ name: "hello" }, (err, doc) => {
if (err) console.log(err)
console.log(doc);
})
ctx.body = 'you are enter mongodb!';
}
})
app
.use(router.routes())
.use(router.allowedMethods());
app.listen(3000);
查找document
router.get('/enter', async (ctx, next) => {
let client = await MongoClient.connect(DTABAE_URL, { useUnifiedTopology: true })
if (client) {
let col = client.db('koa').collection('collection').find();
let result = [];
ctx.body = col
col.each((err, doc) => {
if (err) {
console.log(err);
return
}
if (doc != null) {
console.log(doc);
result.push(doc)
} else {
// 遍历完毕
client.close();
}
})
}
})
增加document
router.get('/enter', async (ctx, next) => {
let client = await MongoClient.connect(DTABAE_URL,
{ useUnifiedTopology: true }
)
if (client) {
client.db('koa').collection('collection').insertOne({ name: '我是新加的数据' }, (err, doc) => {
if (err) console.log(err)
console.log(doc);
})
}
})
修改document
router.get('/enter', async (ctx, next) => {
let client = await MongoClient.connect(DTABAE_URL, { useUnifiedTopology: true })
if (client) {
client.db('koa').collection('collection').updateOne({ _id: '5dc27426b036e7596d738158' }, { $set: { age: 123 } }, (err, doc) => {
if (err) console.log(err);
console.log(doc);
})
}
})
删除document
router.get('/enter', async (ctx, next) => {
let client = await MongoClient.connect(DTABAE_URL, { useUnifiedTopology: true })
if (client) {
client.db('koa').collection('collection').deleteOne({ name: '自动增加47' }, (err, doc) => {
if (err) console.log(err);
})
}
})