MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

bson.D vs bson.M para encontrar consultas


Você pode usar bson.M para o filtro, geralmente resulta em uma declaração de filtro mais curta e clara, a ordem dos campos não importa, o servidor MongoDB é inteligente o suficiente para encontrar índices correspondentes, independentemente da ordem usada. Por exemplo. se você tiver um índice composto com campos A e B , usando um bson.D lista de filtros B primeiro depois A não impedirá que o servidor use o índice existente. Então neste caso você pode usar bson.M e bson.D , não importa.

A ordem importa quando você especifica campos de classificação, por exemplo. Não importa se você classificar por campo A depois pelo campo B , pode ser uma ordem completamente diferente da classificação por B primeiro e depois por A . Então, quando você especifica um documento de classificação com vários campos, você deve definitivamente usar bson.D .

O pedido também pode ser importante (para você ) quando você insere um novo documento, por exemplo. Se você usa um bson.M como o documento, não é garantido que a ordem dos campos seja a mesma em todos os seus documentos. Quando você usa bson.D , a ordem no documento salvo corresponderá à ordem conforme você lista os campos em bson.D .