mongo-> 如何从两个不同的集合中获取日期时间 desc 顺序的记录

Posted

技术标签:

【中文标题】mongo-> 如何从两个不同的集合中获取日期时间 desc 顺序的记录【英文标题】:mongo-> how to fetch records on datetime desc order from two different collections 【发布时间】:2018-06-27 04:53:53 【问题描述】:

我有两个收藏 coin1 和 coin2,我正在尝试根据 DESC 的日期字段顺序从两个收藏中获取记录。其中 coin_id 为 1

coin1 收藏

[ "_id" : 1, "coin_id" : "1", date: "1516259613150",
 "_id" : 2, "coin_id" : "1", date: "1514113680"]

coin2 收藏

[ "_id" : 1, "coin_id" : "1", date: "1496836604",
 "_id" : 2, "coin_id" : "1", date: "1514113680",
]]

我正在寻找这样的结果-:

[ "_id" :1, "coin_id" : "1", date: "1516259613150",
 "_id" : 2, "coin_id" : "1", date: "1514113680".
 "_id" : 1, "coin_id" : "1", date: "1514113680",
 "_id" : 2, "coin_id" : "1", date: "1496836604"]

我怎样才能得到这些记录。

这里的日期是 unix 日期格式。

【问题讨论】:

docs.mongodb.com/manual/reference/operator/aggregation/sort In Mongoose, how do I sort by date? (node.js)的可能重复 【参考方案1】:

如果你是猫鼬,我想你可以试试这个代码!

Collection.find().sort('data':'( - or + )1').find(function (err, collection)
                   console.log(collection);
       );  

【讨论】:

谢谢,但我想在一个查询中从两个集合中获取记录。 我认为你可以使用 find() 两次。回调中的回调 Collection1.find().sort('data':'( - or + )1').find(function (err, collection1) Collection2.find().sort( 'data':'( - or + )1').find(function (err, collection2) // 现在你可以使用 2 个集合 collection1, collection2 console.log(collection1,collection2) ); ); 但是在上面的代码中你使用了两个不同的变量 coll1 和 coll2 ,但我的要求是根据它们的 desc 顺序将两个集合的数据合并到一个数组中。

以上是关于mongo-> 如何从两个不同的集合中获取日期时间 desc 顺序的记录的主要内容,如果未能解决你的问题,请参考以下文章

比较两个集合的 mongo 差异

从nodejs中mongodb的两个不同集合中获取数据

从nodejs中mongodb的两个不同集合中获取数据

在两个不同的集合中生成重复的 Mongo ObjectId 的可能性?

根据特定日期和时间从数据池中的 mongo 集合中过滤数据在同一天的不同时间

你如何告诉 Mongo 在限制结果之前对集合进行排序?