MongoDB проверяет успешность вставки или обновления с помощью asyn c await - PullRequest
1 голос
/ 04 августа 2020

У меня есть этот mon go запрос на обновление БД с asyn c await:

var result = await db
          .collection("threads")
          .updateOne(
            { _id: ObjectId(thread_id) },
            { $push: { messages: messageObject } }
          )

Мне нужно отправить результат успеха или неудачи этого запроса обратно клиенту, как мне узнать, если update или insert были успешными и предпринять другое действие на основании этого?

1 Ответ

1 голос
/ 04 августа 2020

updateOne возвращает UpdateWriteOpResult, который имеет форму:

{
    result: { ok: number; n: number; nModified: number };
    connection: any;
    matchedCount: number;
    modifiedCount: number;
    upsertedCount: number;
    upsertedId: { _id: ObjectId };
}

Поэтому проверьте result.result.ok, чтобы увидеть, правильно ли прошел запрос. вы также можете просмотреть result.result.n, чтобы узнать, соответствует ли он каким-либо документам, и result.result.nModified, чтобы увидеть, изменило ли обновление документ.

insertOne возвращает InsertOneWriteOpResult, который имеет форму:

{
  insertedCount: number;
  ops: TSchema[];
  insertedId: TSchema['_id'];
  connection: any;
  result: { ok: number; n: number };
}

И снова вы можете проверить result.result.ok, чтобы увидеть, прошел ли он.

Вы можете найти все сигнатуры методов здесь

* Это сообщение актуально для драйвера Mon go nodejs.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...