MongoDB.local SF, Jan 15: See the speaker lineup & ship your AI vision faster. Use WEB50 to save 50%
Find out more >
Menu Docs
Página inicial do Docs
/ /
Cursors

cursor.min()

cursor.min()

Importante

Método mongosh

Este é um método mongosh . Esta não é a documentação de Node.js ou de outros métodos de driver específicos da linguagem de programação.

Na maioria dos casos, os métodos mongosh funcionam da mesma forma que os métodos legado do shell mongo . No entanto, alguns métodos legado não estão disponíveis em mongosh.

Para a documentação do shell legado mongo, consulte a documentação para a release correspondente do MongoDB Server:

Para drivers da API do MongoDB, consulte a documentação do driver do MongoDB específica do idioma.

Especifica o limite inferior inclusivo para um índice específico a fim de restringir os resultados de find(). min() fornece uma maneira de especificar limites inferiores em índices de chave compostos.

O método min() tem o seguinte parâmetro:

Parâmetro
Tipo
Descrição

indexBounds

documento

O limite inferior inclusivo para as chaves de índice.

O parâmetro indexBounds tem a seguinte forma de protótipo:

{ field1: <min value>, field2: <min value2>, fieldN:<min valueN> }

Observação

Uso do índice

Para utilizar um índice com o método max() , você deve utilizar o método hint() para especificar o índice que deseja utilizar, exceto quando a query find() for uma condição de igualdade no campo _id .

Dica

min() existe principalmente para dar suporte ao processo mongos e é um invólucro de shell em torno do modificador de query $min.

Observação

Descontinuado desde a v3.2

A partir de v3.2, o operador $min é preterido em mongosh. Em mongosh, use cursor.min() .

Esse método está disponível em implantações hospedadas nos seguintes ambientes:

  • MongoDB Atlas: o serviço totalmente gerenciado para implantações do MongoDB na nuvem

Observação

Este comando é aceito em todos os clusters do MongoDB Atlas. Para obter informações sobre o suporte do Atlas a todos os comandos, consulte Comandos não suportados.

  • MongoDB Enterprise: a versão autogerenciada e baseada em assinatura do MongoDB

  • MongoDB Community: uma versão com código disponível, de uso gratuito e autogerenciada do MongoDB

Como min() requer um índice em um campo e força a query a usar esse índice, você pode preferir o operador $gte para a query, se possível. Considere o seguinte exemplo:

db.products.find( { $in: [ 6, 7 ] } ).min( { price: NumberDecimal("1.39") } ).hint( { price: 1 })

A query usará o índice no campo price, mesmo que o índice em _id possa ser melhor.

Se você usar min() com max() para especificar uma faixa:

  • os limites do índice especificados em min() e max() devem se referir às chaves do mesmo índice.

  • o limite especificado por max() deve ser maior que o limite especificado por min().

Os operadores $min e $max indicam que o sistema deve evitar o planejamento de query normal. Em vez disso, eles constroem uma varredura de índice em que os limites do índice são explicitamente especificados pelos valores fornecidos em $min e $max.

Aviso

Se um dos dois limites não for especificado, o plano de query será uma varredura de índice sem limites em um dos lados. Isso pode prejudicar o desempenho em comparação com uma query que não contém nenhum operador ou uma que usa ambos os operadores para restringir mais fortemente a verificação de índice.

A menos que a consulta find() seja uma condição de igualdade no campo _id { _id: <value> }, você deve especificar explicitamente o índice com o método hint() para executar min().

Para os exemplos abaixo, crie uma collection de amostra chamada products que contenha os seguintes documentos:

db.products.insertMany([
{ "_id" : 1, "item" : "apple", "type" : "honey crisp", "price" : NumberDecimal("1.99") },
{ "_id" : 2, "item" : "apple", "type" : "fuji", "price" : NumberDecimal("1.99") },
{ "_id" : 3, "item" : "apple", "type" : "jonagold", "price" : NumberDecimal("1.29") },
{ "_id" : 4, "item" : "apple", "type" : "jonathan", "price" : NumberDecimal("1.29") },
{ "_id" : 5, "item" : "apple", "type" : "mcintosh", "price" : NumberDecimal("1.29") },
{ "_id" : 6, "item" : "apple", "type" : "cortland", "price" : NumberDecimal("1.29") },
{ "_id" : 7, "item" : "orange", "type" : "cara cara", "price" : NumberDecimal("2.99") },
{ "_id" : 9, "item" : "orange", "type" : "satsuma", "price" : NumberDecimal("1.99") },
{ "_id" : 8, "item" : "orange", "type" : "valencia", "price" : NumberDecimal("0.99") },
{ "_id" : 10, "item" : "orange", "type" : "navel", "price" : NumberDecimal("1.39") }
])

Crie os seguintes índices na coleção:

db.products.createIndexes( [
{ "item" : 1, "type" : 1 },
{ "item" : 1, "type" : -1 },
{ "price" : 1 }
] )
  • Utilizar a ordenação do índice { item: 1, type: 1 }, min() limita a query aos documentos que estão no mesmo nível ou acima do limite da chave do índice do item igual a apple e type igual a jonagold, conforme mostrado a seguir:

    db.products.find().min( { item: 'apple', type: 'jonagold' } ).hint( { item: 1, type: 1 } )

    A consulta retorna os seguintes documentos:

    { "_id" : 3, "item" : "apple", "type" : "jonagold", "price" : NumberDecimal("1.29") }
    { "_id" : 4, "item" : "apple", "type" : "jonathan", "price" : NumberDecimal("1.29") }
    { "_id" : 5, "item" : "apple", "type" : "mcintosh", "price" : NumberDecimal("1.29") }
    { "_id" : 7, "item" : "orange", "type" : "cara cara", "price" : NumberDecimal("2.99") }
    { "_id" : 10, "item" : "orange", "type" : "navel", "price" : NumberDecimal("1.39") }
    { "_id" : 9, "item" : "orange", "type" : "satsuma", "price" : NumberDecimal("1.99") }
    { "_id" : 8, "item" : "orange", "type" : "valencia", "price" : NumberDecimal("0.99") }
  • Usando a ordem do índice { price: 1 }, min() limita a consulta aos documentos que estão iguais ou acima do limite da chave do índice de price igual a 1.39 e max() limita a consulta aos documentos que estão abaixo o limite da chave do índice de price igual a 1.99:

    Observação

    O limite especificado por max() deve ser maior que o limite especificado por min().

    db.products.find().min( { price: NumberDecimal("1.39") } ).max( { price: NumberDecimal("1.99") } ).hint( { price: 1 } )

    A consulta retorna os seguintes documentos:

    { "_id" : 10, "item" : "orange", "type" : "navel", "price" : NumberDecimal("1.39") }

Voltar

cursor.maxTimeMS

Nesta página