相关疑难解决方法(0)

mongodb组由多个字段组成

例如,我有这些文件:

{
  "addr": "address1",
  "book": "book1"
},
{
  "addr": "address2",
  "book": "book1"
},
{
  "addr": "address1",
  "book": "book5"
},
{
  "addr": "address3",
  "book": "book9"
},
{
  "addr": "address2",
  "book": "book5"
},
{
  "addr": "address2",
  "book": "book1"
},
{
  "addr": "address1",
  "book": "book1"
},
{
  "addr": "address15",
  "book": "book1"
},
{
  "addr": "address9",
  "book": "book99"
},
{
  "addr": "address90",
  "book": "book33"
},
{
  "addr": "address4",
  "book": "book3"
},
{
  "addr": "address5",
  "book": "book1"
},
{
  "addr": "address77",
  "book": "book11"
},
{ …
Run Code Online (Sandbox Code Playgroud)

mongodb aggregation-framework

88
推荐指数
4
解决办法
14万
查看次数

如何使用一组ID查找集合中的最新文档

我有一个系列Feeds和一个系列FeedElements.FeedElements文档Feeds通过feedId字段引用该集合.此外,所有FeedElements文档都有日期字段submitted.

我想只发布最新的(由字段确定submitted)FeedElements文档,该文档对应于一个Feeds文档.

这是我尝试过的:

Meteor.publish('recentFeedElements', function (userId) {
    var feedIds = Feeds.find({'userId': userId}).map(function(feed) {
        return feed._id;
    });
    if (feedsIds.length > 0) return FeedElements.find({feedId: {$in: feedIds}}, {sort: {submitted: -1});
    else this.ready();
});
Run Code Online (Sandbox Code Playgroud)

问题是,如果我用limit结合sort的内部FeedElements.find()查询,我只得到所有的最新文档Feed文件.但是,我希望有一个严格的1-1关系.所以,一个Feed文件 - >最新的FeedElements文件与适当的参考.

javascript mongodb meteor mongodb-query

14
推荐指数
1
解决办法
246
查看次数