Mongodb, использующий динамические поля с $ not

#javascript #node.js #mongodb

#javascript #node.js #mongodb

Вопрос:

Я программирую на react, mongodb, nodejs и expressjs. У меня есть проблема, которую я не могу решить. Я хотел бы использовать динамические поля из $ not на сервере. Например, сервер получает имя столбца спереди и должен возвращать количество документов, в которых текст отличается от пустой строки, т. е. '' . Я пытался сделать что-то подобное (код ниже), но это не помогает.

 const query = {};
query[type] = { $not: '' };
User.countDocuments(query, (err, data) => {
    if (err) return res.json({ success: false, error: err });
    return res.json({ success: true, data: data });
});
 

Комментарии:

1. С каким значением вы пытаетесь сравнить $not ?

2. это не работает, когда я делаю это таким образом: const query = { $not: { type: » } };

3. Можете ли вы включить желаемый запрос, который вы хотите создать динамически? Мне неясно, что это за поле и какое значение..

4. Этот запрос добавляется, он хочет извлечь количество элементов, где введите (это имя столбца, заданное динамически), где значение равно пустой строке.

5. Хорошо, думаю, теперь я понял, смотрите мой ответ 🙂

Ответ №1:

Вы близки, вы, вероятно, искали $ne вместо $not . Поэтому меняем его на

 const query = {};
query[type] = { $ne: '' };
 

должен устранить проблему. Это позволит найти все документы, в которых динамическое type поле не равно '' . Если вы хотите сделать обратное, то есть найти все документы, где динамическое поле равно пустой строке, измените его на:

 query[type] = { $eq: '' };
 

Комментарии:

1. Пожалуйста, примите ответ, нажав на галочку слева.