使用 MongoDB Stitch webhook 服务函数,如何将返回的 "insertedId" 转换为字符串?

Using MongoDB Stitch webhook service function, how can I convert the returned "insertedId" to string?

我正在为一个简单的 CRUD 应用程序创建 MongoDB Stitch http 服务(使用第 3 方服务 > 传入 Webhooks > 函数编辑器),我正在尝试插入一个()文档,然后 return 作为字符串的文档 ID。

插入按预期工作,我等待结果并将其存储在变量中。

const result = await collection.insertOne(payload.query)
const id = result.insertedId

问题是试图将此 id 转换为字符串。我猜这是由于我不了解 MongoDB Extended JSON 和 BSON 类型等。我已经阅读了我认为可以在此处提供解决方案的文档的所有部分。

我尝试了以下方法将 return 值转换为字符串:

id.toString() // logs as a string, but is an object { $oid: '507c7f79bcf86cd7994f6c0e' }
id.valueOf() // logs as a string, but is an object { $oid: '507c7f79bcf86cd7994f6c0e' }
id['$oid'] // undefined
Object.values(id.insertedId) // throws error: {"message":"'values' is not a function"}
id.str // undefined
result.str // undefined

不确定还能尝试什么,如果有人能在这里指出正确的方向以提供解决方案,我将不胜感激。

提前致谢。

在注意到文档的这一部分后找到了解决方案: MONGODB STITCH > Functions > Reference > JSON & BSON

const result = await collection.insertOne(payload.query)
const id = JSON.stringify(
  JSON.parse(
    EJSON.stringify(result.insertedId)
  ).$oid
).replace(/\W/g,'');

将文档的 id 转换为字符串似乎有点老套,但现在可以用了。