【问题标题】:Classify mongoose schema arrays by date按日期对 mongoose 模式数组进行分类
【发布时间】:2012-12-28 13:30:21
【问题描述】:

这是架构:

var userschema = new mongoose.Schema({

  user: String,
  messages: [{ 

              title: String,
              author: String,
              message: String,
              date: { type: Date, default: Date.now },

           }],

});

我试图在按日期排序的单个页面中显示所有用户的消息。例如,我知道如何显示特定用户的所有消息,但如果我有多个用户,我不知道如何使用 mongoose 按日期对他们的消息进行分类。有没有办法做到这一点...?

感谢您的提前!

【问题讨论】:

    标签: node.js mongodb express mongoose


    【解决方案1】:

    使用聚合框架和$unwindmessages数组,这样你就可以$sort它们都被date

    Users.aggregate([
        {$unwind: '$messages'},
        {$sort: {'messages.date': 1}}
    ], function (err, result) {
        console.log(result);
    }
    

    【讨论】:

    • 如果我想这样做,但选择了一些特定的用户,我应该改变一些东西吗?
    • @MrMangado 将$match 运算符添加到管道以过滤文档。
    • 是否可以将$match 运算符与数组一起使用?
    • 但是,我的意思是,如果我可以使用 $match 搜索特定用户的消息,并使用包含用户 _ids 的数组。
    猜你喜欢
    • 2023-02-07
    • 1970-01-01
    • 2015-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-05
    • 2018-03-04
    • 1970-01-01
    相关资源
    最近更新 更多