Задать вопрос
bumbay
@bumbay
Node.JS, MongoDB, PHP

Вывести данные из коллекции по массиву?

Есть.
/* 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
  • Вопрос задан
  • 2261 просмотр
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы