使用 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
});
现在,假设我在模型文件中定义了一个数据库:
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
});