Есть.
/* 0 */
{
"_id" : ObjectId("541c03489c3009e80de19d6b"),
"ts" : 1411121993,
"close" : false,
"users" : [
"7e8f5f8fc847bc6",
"920299d58dc02ec"
],
"__v" : 0
}
/* 1 */
{
"_id" : ObjectId("541c035f9c3009e80de19d6c"),
"ts" : 1411122016,
"close" : false,
"users" : [
"7e8f5f8fc847bc6",
"a285496ba35fe98"
],
"__v" : 0
}
/* 2 */
{
"_id" : ObjectId("541c035f9c3009e80de19d6d"),
"ts" : 1411122016,
"close" : false,
"users" : [
"7e8f5f8fc847bc6",
"c2f1f4e949237d1"
],
"__v" : 0
}
Это коллекция диалогов.
Допустим мой id -
7e8f5f8fc847bc6
Мне нужно создать новый диалог с пользователем id -
c2f1f4e949237d1
Для этого мне нужно проверить на существование такого диалога.
Если он уже существует и close: false, то нужно выдать его dialog id, если нет - создать новый.
Проблема в том, что я не пойму как в mongoose сделать запрос проверки.
В массиве users данные могут быть
в любом порядке, но их не может быть больше двух.
На языке sql это примерно вот так:
select ... where (users = ['c2f1f4e949237d1', '7e8f5f8fc847bc6'] or users = ['7e8f5f8fc847bc6', 'c2f1f4e949237d1']) and close = false