Я использую mon goose с Node.js для создания документа chat
с participants
в качестве одного из полей, если чат не существует.
Если он существует, просто увеличьте статус до 1 или любого числа.
Мое текущее решение:
try {
let query = { participants: { $all: [CURRENT_USER_ID, TARGETED_ID] } };
let update = { $inc: { status: 1 }};
let options = { upsert: true, new: true };
let chat = await Chat.findOneAndUpdate(
query,
update,
options
).exec();
console.log(chat);
} catch (err) {
console.log(err.message);
}
Я получу ошибку
"невозможно определить поля запроса для установки, путь" участники "сопоставляется дважды"
Я даже использую это решение , и оно не работает, оно создало вместо этого пустой список участников.
let query = {
participants: {
$all: [
{ $elemMatch: { $eq: CURRENT_USER_ID } },
{ $elemMatch: { $eq: TARGETED_ID } }
]
}
};
Любая помощь будет очень полезна. Спасибо