使用async / await在node.js中连接到mongodb 3.0.10

以下是使用node.js中npm的mongodb3.0.10版本,通过async/await方法连接mongo的方式的笔记。在搜索中,2.2系列的文档排在前面,但2.2系列和3.0系列的API有所改变,让我有些困惑,所以我记录下来。

    • mongod: 3.6.5

 

    (npm) mongodb: 3.0.10 (node-mongodb-native)

安装

假设要在我手头的Mac上进行安装,那就是要安装MongoDB。

brew install mongodb

使用 npm 安装软件包

yarn add mongodb
yarn add --dev babel-cli babel-preset-es2015

.babelrc可以被重新解释为“.babelrc”的文件。

{ "presets": ["es2015"] }

示例代码

MongoDB的教程中写了一种使用回调函数的方法,但实际上它也可以返回一个Promise,所以用这个方法写起来更清晰。这是使用es2015的async/await的示例代码。将执行一个连接测试来插入一条文档。

import mongodb from 'mongodb'

const HOSTNAME = 'mongodb://127.0.0.1:27017'
const DB_NAME = 'test_database'
const COLLECTION_NAME = 'test_collection'

const main = async () => {
  const client = await mongodb.MongoClient.connect(HOSTNAME)
  const db = await client.db(DB_NAME)
  const collection = db.collection(COLLECTION_NAME)
  await collection.insert({ foo: "bar" })
  client.close()
}

main()

执行结果

我会执行。

babel src -d dist
node dist/test.js

我会确认结果。

$ mongo

> show databases
......(略)
test_database  0.000GB

> use test_database

> db.test_collection.find()
{ "_id" : ObjectId("5b2f5118b0284648fa8df6b7"), "foo" : "bar" }

好的!

相关

相关:尝试通过Node.js连接MongoDB
参考:mongoDB快速入门(node.js驱动程序3.x)

广告
将在 10 秒后关闭
bannerAds