Ich habe diese Abfrage in MongoDBAuf MongoDB wie kann ich die Abfrage einschränken, wenn mein Rückruf innerhalb "finden" ist?
db.privateMessages.find(
{ $or : [
{fromId: userId, toId: socket.userId} ,
{fromId: socket.userId, toId: userId} ]
},
function(err, messages) { pushSvdMsgs(messages); });
Es funktioniert perfekt, mit Ausnahme der Tatsache, dass ich 50 Ergebnisse.
Ich habe dies versucht:
db.privateMessages.find({ $or : [ {fromId: userId, toId: socket.userId} , {fromId: socket.userId, toId: userId} ] }, function(err, messages) { pushSvdMsgs(messages); }).limit(10);
Aber das half auch nicht, also habe ich versucht diese, unter dem es auch nicht helfen zu begrenzen.
Wie kann ich die Anzahl der Ergebnisse von dieser Abfrage begrenzen, und rufen Sie den Rückruf immer noch auf die gleiche Weise wie ich habe?
Also, erhalten Sie mehr als 50 Dokumente und Sie wollen nur 50? –
@SergioTulentsev Fast sah ich schnell einen Code hier, die sehr gut gearbeitet, es war dies: db.privateMessages.find ({$ oder: [{AbsenderID: userId, EmpfängerID: socket.userId}, { AbsenderID: socket.userId, toId: userId}], {}, {Limit: 10}, Funktion (Fehler, Nachrichten) {pushSvdMsgs (Nachrichten);}); Aber von jetzt an gibt es 2 Dinge, die ich frage, warum gibt es ein leeres {}, ist das, wo ich legte, wie ich es bestellen, weil ich es auch gerne bestellen würde durch "timeStamp" DESC – user1306636
Ok, wenn es arbeitet für Sie, dann lösche ich meine Antwort, damit Sie sie annehmen können. Ich arbeite nicht mit node.js, also war ich mir nicht sicher, ob ich es richtig gegoogelt habe :) Anscheinend ist die Syntax (Abfrage, Felder, Optionen). Also brauchen wir das leere '{}' um Optionen an ihre Stelle zu setzen. –