Монго: найти элементы, которые не имеют определенного поля



Как искать документы в коллекции, в которой отсутствует определенное поле в MongoDB?

574   2  

2 ответов:

Да, это возможно с помощью существует$:

db.things.find( { a : { $exists : false } } ); // return if a is missing

когда значение true, $exists соответствует документам, содержащим поле, включая документы, в которых значение поля равно null. Если false, то запрос возвращает только те документы, которые не содержат поле.

Если вам все равно, если поле отсутствует или null (или если это не null), то вы можете использовать немного короче и безопаснее:

db.things.find( { a : null } ); // return if a is missing or null

это безопаснее, потому что $exists вернутся true даже если поле имеет значение null, что часто не является желаемым результатом и может привести к NPE.

Comments

    Ничего не найдено.