С помощью функции сервиса MonghoDB Stitch webhook, как я могу преобразовать возвращенный "insertId" в строку? - PullRequest
0 голосов
/ 17 марта 2020

Я создаю http-сервис MongoDB Stitch (используя Сторонние сервисы> Входящие веб-задания> Редактор функций) для простого приложения CRUD и пытаюсь вставить документOne (), а затем вернуть идентификатор документа в виде строки.

Вставка работает должным образом, и я жду результата и сохраняю его в переменной.

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

Проблема заключается в попытке преобразовать это id в строку. Я предполагаю, что это из-за моего непонимания типов MongoDB Extended JSON и BSON и т. Д. c. Я прочитал все части документации, которые, как я думал, могли бы найти решение здесь.

Я пробовал следующее, чтобы преобразовать возвращаемое значение в строку:

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

Не уверен что еще можно попробовать, и я был бы очень признателен, если бы кто-то указал мне правильное направление, чтобы найти решение.

Заранее спасибо.

1 Ответ

0 голосов
/ 17 марта 2020

Нашел решение после того, как обратил внимание на этот раздел документации: MONGODB STITCH> Функции> Ссылка> JSON & BSON

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

Кажется немного хакерским только для получения идентификатора документа в строку, но пока он будет работать.

...