使用 javascript/node.js 在 mongodb 中找到具有另一个条件的对象的最早日期

find earliest date of object with another condition in mongodb using javascript/node.js

现在,假设我在模型文件中定义了一个数据库:

MessageSchema = mongoose.Schema({
  message:       String, 
  sessionRef:     { type: mongoose.Schema.Types.ObjectId, ref:'Session' },
  dateCreated:      { type: Date, default: Date.now }
});

在另一个文件中,我将消息声明为:

var Message  = require("../models/message");

现在,我想使用 mongoose 创建一个查询,以查找具有特定 sessionRef 的最早消息。例如:

Message.find({sessionRef : 123456})

这可用于查找具有特定 sessionRef 的消息,但我如何才能真正找到最早的消息(按创建日期排序)?

按最早日期排序的方式是:

Message.find({sessionRef : 123456})
 .sort({'dateCreated': 'desc'})
 .exec(function(err, messages) {
     //first item is a earliest message
 });

或者如果您只想要 return 一件商品,您可以使用 findOne:

Message.findOne({sessionRef : 123456})
 .sort({'dateCreated': 'desc'})
 .exec(function(err, message) {
     //the message is the earliest
 });