que tienen esta consulta en MongoDBEn MongoDB ¿cómo puedo limitar la consulta, cuando mi devolución de llamada está dentro de "buscar"?
db.privateMessages.find(
{ $or : [
{fromId: userId, toId: socket.userId} ,
{fromId: socket.userId, toId: userId} ]
},
function(err, messages) { pushSvdMsgs(messages); });
Funciona perfectamente, excepto por el hecho de que tengo 50 resultados.
He intentado esto:
db.privateMessages.find({ $or : [ {fromId: userId, toId: socket.userId} , {fromId: socket.userId, toId: userId} ] }, function(err, messages) { pushSvdMsgs(messages); }).limit(10);
Pero eso no ayuda tampoco, así que este tratado por debajo del cual tampoco ayudar a limitar la misma.
db.privateMessages.find({ $or : [ {fromId: userId, toId: socket.userId} , {fromId: socket.userId, toId: userId} ] }, { $limit : 2 }, function(err, messages) { pushSvdMsgs(messages); });
¿Cómo puedo limitar el número de resultados de esta consulta, y todavía llamar a la devolución de llamada de la misma manera que tengo?
Entonces, ¿está obteniendo más de 50 documentos y solo quiere 50? Casi –
@SergioTulentsev, rápidamente vi un código con el que trabajó muy bien, era la siguiente: db.privateMessages.find ($ {o: [{fromId: ID de usuario, toid: socket.userId}, { fromId: socket.userId, toId: userId}]}, {}, {limit: 10}, función (err, messages) {pushSvdMsgs (messages);}); Pero a partir de ahora, hay 2 cosas que me pregunto, ¿por qué hay un {} vacío, es donde puse cómo ordenarlo, porque también me gustaría ordenarlo por "timeStamp" DESC – user1306636
Ok, si funciona para ti, luego recuperaré mi respuesta para que puedas aceptarla. No trabajo con node.js, así que no estaba seguro si lo busqué en Google :) Aparentemente, la sintaxis es (consulta, campos, opciones). Necesitamos esa '' {} 'vacía para poner las opciones en su lugar. –