使用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)