2017-06-19 4 views
0

Ich habe 10000 Daten in meiner Monogodb-Tabelle, müssen eine Abfrage schreiben, um die Anzahl zwischen zwei Daten zu erhalten. unten ist die Antwort wie aus mongodb Tabelle siehtMongoDB Abfrage erhalten zwischen zwei Daten zählen

{ _id: 5942c8e366ae6b3aefb37232, 
    serialnumber: 5523330044, 
    model: ‘MODEL1’, 
    version: 'EM.12.12.12', 
    releasedata: '2017-06-01', 
    modelid: 90000001, 
    uiversion: 'EM.12.12.12', 
    imageversion: 'EM.M1.M1.M1', 
    ecnnumber: null }, 
    { _id: 5942c8e366ae6b3aefb37231, 
    serialnumber: 5523330043, 
    model: 'MODEL1', 
    version: 'EM.12.12.12', 
    releasedata: '2017-06-01', 
    modelid: 90000001, 
    uiversion: 'EM.12.12.12', 
    imageversion: 'EM.M1.M1.M1', 
    ecnnumber: null }, 
    { _id: 5942c8e366ae6b3aefb37233, 
    serialnumber: 5523330045, 
    model: 'MODEL1', 
    version: 'EM.12.12.12', 
    releasedata: '2017-06-01', 
    modelid: 90000001, 
    uiversion: 'EM.12.12.12', 
    imageversion: 'EM.M1.M1.M1', 
    ecnnumber: null }, 
    { _id: 5942c8e366ae6b3aefb37234, 
    serialnumber: 5523330046, 
    model: 'MODEL1', 
    version: 'EM.12.12.12', 
    releasedata: '2017-06-01', 
    modelid: 90000001, 
    uiversion: 'EM.12.12.12', 
    imageversion: 'EM.M1.M1.M1', 
    ecnnumber: null }, 
    { _id: 5942c8e366ae6b3aefb37235, 
    serialnumber: 5523330047, 
    model: 'MODEL1', 
    version: 'EM.12.12.12', 
    releasedata: '2017-06-01', 
    modelid: 90000001, 
    uiversion: 'EM.12.12.12', 
    imageversion: 'EM.M1.M1.M1', 
    ecnnumber: null }, 
    { _id: 5942c8e366ae6b3aefb37237, 
    serialnumber: 5523330049, 
    model: 'MODEL1', 
    version: 'EM.12.12.12', 
    releasedata: '2017-06-01', 
    modelid: 90000001, 
    uiversion: 'EM.12.12.12', 
    imageversion: 'EM.M1.M1.M1', 
    ecnnumber: null }, 

Was ich versucht habe, ich den Code unten bilden die Zählung von „1000“ bekam, aber ich brauche eigentlich eine Abfrage, die die Anzahl der registrierten Geräte Form geben schreiben Start- und Enddatum

In der obigen Antwort habe ich den Freigabeschlüssel, um zwischen Daten abzufragen.

bitte helfen Sie mir bei der Suche nach der Lösung.

app.post('/getTheCount', function (req, res) { 

    var collection = gdb.collection('machine'); 
    var modelid  = parseInt(req.body.modelid); 
    collection.count({modelid:modelid}, function(error, numOfDocs) { 
    console.log('I have '+numOfDocs+' documents in my collection'); 
    res.send({numOfDocs}); 

    }); 

}) 

Danke,

Antwort

0

ich würde versuchen, dies mit $gte und $lte in mongodb.

db.machine.find({ 
    releasedata: { 
     $gte: ISODate("2010-04-29T00:00:00.000Z"), 
     $lt: ISODate("2010-05-01T00:00:00.000Z") 
    } 
}).count(); 

Wenn releasedata IY nicht Ihr Datum der Änderung, es zu suchen. Ich würde Ihnen empfehlen, das Datum nicht als Zeichenfolge zu speichern. es so versuchen:

> db.test.insert({date: ISODate()}) 
> db.test.insert({date: new Date()}) 
> db.test.find() 
{ "_id" : ObjectId("..."), "date" : ISODate("2010-04-29T00:00:00.000Z") } 
{ "_id" : ObjectId("..."), "date" : ISODate("2010-05-01T00:00:00.000Z") } 
+0

Danke für die Antwort, wenn die obige Abfrage verwenden, ich habe „isodate ist nicht definiert“ Fehler. Ich denke, ich habe Fehler beim Speichern der freigegebenen Daten im String-Format gemacht. Könnten Sie mir bitte vorschlagen – nikey

+0

@nikey schauen Sie sich meinen answert an. Ich habe meinen Beitrag bearbeitet. –

+0

Vielen Dank Patrick – nikey

Verwandte Themen