MongoDB查询获取两个日期之间的计数

amrnrhlw  于 2022-12-03  发布在  Go
关注(0)|答案(2)|浏览(160)

我的monogodb表中有10000个数据,需要编写一个查询来获取两个日期之间的计数。下面是mongodb表的响应

{ _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 },

我所尝试的,从下面的代码我得到了“1000”的计数,但我实际上需要写一个查询,从开始和结束日期给予注册设备的计数。
在上面的响应中,我有releasedate键来查询日期之间的关系。
请帮助我找到解决办法。

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});

     });

 })

谢谢你,

xxhby3vn

xxhby3vn1#

我会在mongodb中用$gte$lte来尝试这个。

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

如果releasedata iy不是您的日期,请搜索并更改它。我建议您不要将日期存储为字符串。尝试这样做:

> 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") }
pgky5nke

pgky5nke2#

如果要在DB中进行单个收集,可以使用
数据库.集合名称.find({“创建时间”:“2022年11月29日星期三”(“2022-11- 30 T00:00:00.000Z”)}}).计数();
如果要获取DB中存在的所有集合的计数
如果您有任何问题,请联系我们。如果您有问题,请联系我们。“2022年11月29日星期三”(“2022-11- 30 T00:00:00.000Z”)}}).计数();打印(收藏+“计数为:“+计数);});

相关问题