Монго сохранить данные, если некоторые поля не совпадают - PullRequest
0 голосов
/ 08 ноября 2018

Я хочу сохранить данные в коллекции mongo, если данные уже отсутствуют, что может быть проверено некоторыми полями. Я думаю, что не могу использовать монго save() или insert(), поэтому я перешел на монго update() с upsert: true.

запущен запрос:

const query = {
            $and: [
                { invitationTo: { $ne: some.invitationTo } },
                { invitationBy: { $ne: some.invitationBy } },
                { listingId: { $ne: some.listingId } }
            ]
}
const options = {
            upsert: true
}
db.contactRequests.update(query, contactRequestsVal, options)

Мне здесь не повезло. Предложите мне правильный способ сделать это, если это возможно в одном запросе . Коллекция contactRequests содержит:

    invitationTo: {
        type: mongoose.Schema.Types.ObjectId,
        ref: 'users'
    },
    invitationBy: {
        type: mongoose.Schema.Types.ObjectId,
        ref: 'users'
    },
    listingId: {
        type: mongoose.Schema.Types.ObjectId,
        ref: 'listings'
    },
    message: {
        type: String,
        required: true
    },
    attachment: {
        type: String
    }
...