Как я могу отсортировать по дате мою заполненную коллекцию в MongoDB? - PullRequest
0 голосов
/ 27 марта 2020

Кто-нибудь знает, как заполнить отсортированную коллекцию документов в MongoDB?

Я пробовал много решений, но безуспешно.

Итак, это моя схема комментариев:

const mongoose = require("mongoose");
const Schema = mongoose.Schema;

const CommentSchema = new Schema(
  {
    recipe: {
      type: Schema.Types.ObjectId,
      ref: "recipe"
    },
    content: {
      type: String,
      required: true
    },
    date: {
      type: Date,
      required: true
    }
  },
  { collection: "comment" }
);

const Comment = mongoose.model("comment", CommentSchema);

module.exports = Comment;



Это мой распознаватель:

const recipeUpdated = await Recipe.findOneAndUpdate(
          { _id: recipeId },
          {
            $push: {
              comments: { commentator: user, comment: comment, rate: rate }
            }
          },
          { new: true }
        )
          .populate([
            { path: "author", model: User },
            { path: "comments.commentator", model: User },
            { path: "comments.comment", model: Comment }, // --> I'd like to populate this collection sorted by date field
            { path: "comments.rate", model: Rate }
          ])
          .exec();

Я пытался:

{ path: "comments.comment", model: Comment, options: { sort: { date: -1 } } }

Но все равно не работает ...

Есть предложения?

Thx.

...