koa2链接mongodb官方免费服务器

89 阅读1分钟

1. 引入mongodb包

npm install mongodb

2. 链接数据库

链接之前必须保证有库和集合(表)

import {  MongoClient,  ServerApiVersion} from 'mongodb'const url = "mongodb+srv://<官网找到mongodb+srv得地址>"const client = new MongoClient(url, {  useNewUrlParser: true,  useUnifiedTopology: true,  serverApi: ServerApiVersion.v1})
async function test() {  try {    await client.connect();    const database = client.db("test")    const ratings =  database.collection("testItem")    const cursor = await ratings.find({"name":'jame'}).toArray();  } finally {    await client.close();  }}run().catch(console.log(1)).finally(() => client.close())

3.增删改查

新增单条数据

  insert(obj) {    return new Promise(async (resolve, reject) => {      await client.connect()      var myobj =   { name: '百度', url: 'https://www.baidu.com', type: 'cn'}      const database = client.db("test")      const ratings = database.collection("testItem")      ratings.insertOne(myobj, function (err, res) {        if (err) {          reject(false)          throw err        }        console.log("插入的文档为: " + res);        resolve(true)        client.close();      })    })  }

let obj = {"name":'jame'}
ratings.find(obj).toArray() // 查询数据
ratings.deleteOne(obj) // 删除单条数据
let myobj =  [   { name: '百度', url: 'https://www.baidu.com', type: 'cn'},   { name: 'Google', url: 'https://www.google.com', type: 'en'},   { name: 'Facebook', url: 'https://www.google.com', type: 'en'}]ratings.insertMany(myobj) // 新增多条数据
let delObj = [{"name":'jame'},{"name": '百度'}]
ratings.deleteMany(delObj) // 删除多条数据

修改数据

  update(oldObj, newObj) {    return new Promise(async (resolve, reject) => {      await client.connect()      const database = client.db("test")      const ratings = database.collection("testItem")      ratings.updateOne(oldObj, {$set: newObj }, function (err, res) {        if (err) {          reject(false)          throw err        }        console.log("更新1: " + res);        resolve(true)        client.close();      });    })  }
ratings.updateMany(oldObj, {$set: newObj } // 修改多条数据

Tip:操作数据库时候要使用promise来控制执行顺序