2016-10-20 1 views
2

Я использую Node.js + mongodb. У меня есть несколько документов в моей коллекции, и я хочу знать, имеет ли в моей коллекции какой-либо документ, соответствующий моему состоянию. Конечно, я могу просто использовать myModel.find({ myField: someValue }) и проверить, что-нибудь пришло или нет. Но я хочу использовать решение, такое как sql, предоставляет ключевое слово exists? Помогите мне, пожалуйстаКак правильно использовать функцию «существует» в mongodb, как в sql?

Редактировать: мое плохое. Я забыл сказать, что «производительность первая».

ответ

2

MongoDB-х $exists на самом деле не поможет вам очень много, чтобы узнать, если определенный документ существует в вашей коллекции. Он используется, например, чтобы предоставить вам все документы, которые имеют определенный набор полей.

У MongoDB нет встроенной поддержки для sql, как существует. Однако вы можете использовать myModel.findOne({ myField: someValue }), а затем проверить, является ли оно нулевым.

Для повышения производительности вы можете сказать MongoDB только загрузить идентификатор объекта через проекцию, например:

myModel.findOne({ myField: someValue }, {_id: 1}) 
1

Существует механизм в mongodb, я продемонстрирую образец ниже.

Например, ниже я ищу записи с полями tomato.consensus и что он пуст, поэтому я могу удалить их или избежать их. В случае, если я искал «tomato.consensus»: Дублин, я бы изменил Null в Дублин, чтобы соответствовать этому.

Я надеюсь, что это полезно, если не жарь вопросы

tomato 
----consensus 

db.movieDetails.updateMany({$and: [ 
     {"tomato.consensus": {$exists: true} }, 
     {"tomato.consensus": null} ] }, 
]}) 
Смежные вопросы