多结果显示MongoDB Node.JS

多结果显示MongoDB Node.JS,node.js,mongodb,Node.js,Mongodb,我在为加密货币汇率显示后端编写代码 我有两个主要问题是 第一名: last: { rate: (idx, cb) => { models.master.find({}).where('id',idx).limit(10).exec((err,data)=>{ if(data && data.length>0) cb(data); else cb(err); });

我在为加密货币汇率显示后端编写代码

我有两个主要问题是

第一名:

    last: {
    rate: (idx, cb) => {
        models.master.find({}).where('id',idx).limit(10).exec((err,data)=>{
            if(data && data.length>0)   cb(data);
            else cb(err);
        });
    }
}
[{"_id":"595c88bf4d451b206454434b","time":"5-7-2017_12:05:43:PM","id":"bitcoin","name":"Bitcoin","symbol":"BTC","rank":"1","price_usd":"2561.25","price_btc":"1.0","market_cap_usd":"42078648188.0","available_supply":"16428950.0","total_supply":"16428950.0","percent_change_1h":"0.2","percent_change_24h":"-2.42","percent_change_7d":"2.13","last_updated":"1499236459","price_inr":"165829.411875","market_cap_inr":"2724403116224","__v":0}]
看看代码吧,它总是只有一个数据JSON对象,而应该有多个

秒:

    last: {
    rate: (idx, cb) => {
        models.master.find({}).where('id',idx).limit(10).exec((err,data)=>{
            if(data && data.length>0)   cb(data);
            else cb(err);
        });
    }
}
[{"_id":"595c88bf4d451b206454434b","time":"5-7-2017_12:05:43:PM","id":"bitcoin","name":"Bitcoin","symbol":"BTC","rank":"1","price_usd":"2561.25","price_btc":"1.0","market_cap_usd":"42078648188.0","available_supply":"16428950.0","total_supply":"16428950.0","percent_change_1h":"0.2","percent_change_24h":"-2.42","percent_change_7d":"2.13","last_updated":"1499236459","price_inr":"165829.411875","market_cap_inr":"2724403116224","__v":0}]
如何按最近添加的数据排序意味着我已经添加了时间键,但我缺乏相关知识。(升序和降序)

测试MongoDB对象:

    last: {
    rate: (idx, cb) => {
        models.master.find({}).where('id',idx).limit(10).exec((err,data)=>{
            if(data && data.length>0)   cb(data);
            else cb(err);
        });
    }
}
[{"_id":"595c88bf4d451b206454434b","time":"5-7-2017_12:05:43:PM","id":"bitcoin","name":"Bitcoin","symbol":"BTC","rank":"1","price_usd":"2561.25","price_btc":"1.0","market_cap_usd":"42078648188.0","available_supply":"16428950.0","total_supply":"16428950.0","percent_change_1h":"0.2","percent_change_24h":"-2.42","percent_change_7d":"2.13","last_updated":"1499236459","price_inr":"165829.411875","market_cap_inr":"2724403116224","__v":0}]

通常,如果你搜索
where('id',idx)
你在寻找一个项目,可能你提出了一个错误的请求?@O.Borcuhin什么是正确的,请提及。要比较日期,你需要使用时间戳,如上次更新的
字段或将时间保存为JS日期
新日期(时间)
。但对我来说,最好使用时间戳。然后在
find()。您可以在此处找到更多信息:
https://docs.mongodb.com/manual/reference/operator/meta/orderby/
这里的问题是
“时间”
数据包含一个“字符串”,而一个甚至不受“词法”排序约束的数据,如
“2017-07-05T12:05:43.000Z”
将是。因此,您需要将数据转换为“排序”,或者实际上是“按范围搜索”。但是,既然您无论如何都需要这样做,那么您应该转换为BSON
Date
,因为它比字符串占用更少的空间,并且作为时间戳的基本数字属性的值,它更有用。因此,您应该更新所有数据,并将“字符串”解析为
Date
对象。然后你可以得到你想要的结果。还有“这不是JSON”。你需要把这种想法从你的脑子里弄出来。MongoDB“内部”将数据存储为BSON。但从代码的角度来看,它只是“本机数据结构”,在本例中是普通的JavaScript对象和数组。