在MongoDB中,使用.save()方法保存文档是同步操作,即会阻塞代码直到保存完成。如果你想要将保存操作挂起并仅接收到_id,你可以使用异步操作。以下是使用async/await关键字的代码示例:
const { MongoClient } = require('mongodb');
async function saveDocumentAndGetId() {
const uri = 'mongodb://localhost:27017';
const client = new MongoClient(uri);
try {
await client.connect();
console.log('Connected to MongoDB');
const database = client.db('your-database');
const collection = database.collection('your-collection');
const document = { name: 'John Doe' };
const result = await collection.insertOne(document);
const id = result.insertedId;
console.log('Document saved with id:', id);
return id;
} catch (error) {
console.error('Error saving document:', error);
} finally {
await client.close();
console.log('Disconnected from MongoDB');
}
}
saveDocumentAndGetId();
在上面的代码示例中,我们使用了async/await关键字来异步执行保存操作。首先,我们创建一个MongoClient实例,并使用await关键字等待连接完成。然后,我们获取到数据库和集合的引用,并定义要保存的文档。接下来,我们使用await关键字等待insertOne()方法的执行结果,该方法会返回一个包含插入文档_id的结果对象。我们从结果对象中提取出_id,并打印到控制台。最后,我们关闭数据库连接。
请记得将your-database
和your-collection
替换为你实际使用的数据库和集合名称。
上一篇:保存、显示和删除JSON文件
下一篇:保存(并打开)一个png绘图列表