2017-02-12 3 views
0

Ich bin ein Neuling in Javascript und MongoDB Technologien. Ich versuche, eine "Geschäfts" -Sammlung basierend auf bestimmten Bedingungen (Feld und Wert) abzufragen. Ich muss die abgefragten Ergebnisse mit dem Datumsfeld (CreateDate) sortieren. Könnten Sie mir bitte helfen? Vielen Dank im Voraus für Ihre Hilfe! :) [Screenshot of my code attached here]Wie wird nach dem Datumsfeld des abgefragten Ergebnisses sortiert?

Bitte beachten Sie: Der Wert in CreateDate Feld wird als Zeichenfolge im Format YYYY-MM-DD, d. H. 2017-04-01 gespeichert.

bekam ich eine Fehlermeldung

sagen

als ich versuchte, den folgenden Code auszuführen "nicht Eigentum 'Art' undefinierter lesen kann":

Code:

exports.readDocument = function(collection, uniqueKey, field, value, callback) { 

    MongoClient.connect(url, function(err, db) { 
     assert.equal(null, err); 
     db.collection("Businesses").find({ 
       "Id": uniqueKey 
      }, { 
       [field]: value, 
       _id: 0 
      }, 
      function(err, result) { 
       if (result) { 
        result.toArray(function(err, items) { 
         console.log("toArray", items, err); 
        }); 
        callback(true); 
       } else { 
        callback(false); 
       } 
      }).sort({ 
      "Created Date": -1 
     }); 
     db.close(); 
    }); 
}; 
+3

können Sie sortieren mit db.model.find(). Sort() –

+0

fügen Sie bitte den Code in Textform zu der Frage. Sie können auch hier nachschauen: [mcve] –

Antwort

0

Stellen Sie sicher, dass der Name des Felds ("Erstellungsdatum") in dem Sie verwenden Ihre Abfrage ist dieselbe wie die in Dokumenten verwendete.Auch ist es am besten, mit Kleinbuchstaben alphanumerisch mit Unterstrichen als Feldnamen zu bleiben.

0

Sie müssen überprüfen, ob der Datenbankname korrekt ist. Stellen Sie außerdem sicher, dass Sie die Ergebnisse wie erwartet erhalten, bevor Sie sortieren. Ich bezweifle stark, dass das Ergebnis null ist, deshalb erhalten Sie den Fehler "undefined" -Objekt.

0

Ich denke, Ihre Syntax ist hier falsch. Ihre Syntax sollte wie folgt dieses Formular Mungo Treiber

collection.find().sort({datefield: -1}, function(err, cursor){...}); 
0
db.collection("Businesses").find({ 
       "Id": uniqueKey 
      }, { 
       [field]: value, 
       _id: 0 
      }).sort({"Created Date": -1}).exec(function(err, result) { 
       if (result) { 
        result.toArray(function(err, items) { 
         console.log("toArray", items, err); 
        }); 
        callback(true); 
       } else { 
        callback(false); 
       } 
      }) 

Versuchen sein.

Verwandte Themen