Mongoose: consultar ObjectIds com os operadores $ lt e $ gt

Criado em 3 set. 2014  ·  3Comentários  ·  Fonte: Automattic/mongoose

Assumindo um esquema com uma propriedade _id normal, desejo consultar com um operador $gt . Consulta MongoDB equivalente:

db.applications.find({ _id : { $gt : ObjectId("53ddb3c00000000000000000") } })

Mas, do lado do mangusto, ao usar um objeto com o tipo ObjectId, ele lança:

var minimumObjectId = new mongoose.Schema.ObjectId(minimumObjectIdString);
Applcation.find({ _id : { $gt : minimumObjectId } }) 
/*
{ [CastError: Cast to ObjectId failed for value "ObjectId('53de7ea3000000000000000')" at path "_id"]
  message: 'Cast to ObjectId failed for value "ObjectId(\'53de7ea3000000000000000\')" at path "_id"',
  name: 'CastError',
  type: 'ObjectId',
  value: 'ObjectId(\'53de7ea3000000000000000\')',
  path: '_id' }
*/

Assim como uma string simples:

Application.find({ _id : { $gt : minimumObjectIdString } })

Eu até tentei algo louco como:

Application.find({ _id : { $gt : "ObjectId('" + minimumObjectIdString + "')" } })

Comentários muito úteis

isso não funciona para mim

Todos 3 comentários

@ vkarpov15 , acho que isso também pode ser um problema no driver mongo-native subjacente, pois tentei fazer algo como:

Application.collection.find({ _id : { $gt : "53f0c1850000000000000000" } }, function(err, cursor) {
    console.log(err)
    cursor.toArray(function(results){
        console.log(results);
    })
})

O que você está fazendo para obter minimumObjectIdString ? Você deve usar mongoose.Types.ObjectId vez de mongoose.Schema.ObjectId

var minimumObjectId = new mongoose.Types.ObjectId(minimumObjectIdString);
Applcation.find({ _id : { $gt : minimumObjectId } }) 

Deve funcionar com uma corda também.

isso não funciona para mim

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

simonxca picture simonxca  ·  3Comentários

varunjayaraman picture varunjayaraman  ·  3Comentários

Soviut picture Soviut  ·  3Comentários

adamreisnz picture adamreisnz  ·  3Comentários

p3x-robot picture p3x-robot  ·  3Comentários