Mongoose Find - исключить один конкретный документ - PullRequest
0 голосов
/ 02 сентября 2018

Я хочу получить много документов через Schema.find(), но исключить один конкретный документ через его идентификатор. В настоящее время мой запрос выглядит так:

Product
    .find({
        $or: [
            { 'tags': { $regex: criteria, $options: 'i' }, },
            { 'name': { $regex: criteria, $options: 'i' }, },
        ],
    })
    .limit(10)
    .exec((err, similar) => {
        //...
    })

Я пытался добавить $not: { _id: someId } к запросу, но это выдает ошибку, что $not не является действительным.

1 Ответ

0 голосов
/ 02 сентября 2018

Используйте $ne, что означает not equal

Product.find({ _id: {$ne: someId}})

Таким образом, весь запрос будет выглядеть как

Product
    .find({
        $and: [
             { _id: {$ne: someId} },
             { $or: [
                   { 'tags': { $regex: criteria, $options: 'i' }, },
                   { 'name': { $regex: criteria, $options: 'i' }, },
             ]},
         ]
    })
    .limit(10)
    .exec((err, similar) => {
        //...
    })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...