Я пытаюсь выяснить, как сравнить текущую ставку с резервной ценой. Если ставка пользователя не выше резервной цены, то я хочу отфильтровать этот документ или, если значение резервной цены равно None
, не фильтровать документ в запросе GET. Используемое выражение - это то, на что я смотрел в стековом посте, но так и не получил работу Как сравнить два значения в одном документе?
определение модели
reservePrice: { type: String },
currentBid: { type: String }
Post.find({
$expr: {
$or: [
{
$and: [
{ $in: ["$bidderId", req.query.bidderId] },
{ $lte: ["$auctionEndDateTime", Date.now()] },
{ $gt: ["$reservePrice", "$currentBid"] }
],
$and: [
{ $in: ["$bidderId", req.query.bidderId] },
{ $lte: ["$auctionEndDateTime", Date.now()] },
{ $ne: ["$reservePrice", "None"] }
]
}
]
}
})
.populate("creator", "username")
.then(documents => {
console.log(documents);
req.params.Id = mongoose.Types.ObjectId(req.params.Id);
res.status(200).json({
message: "Auction listings retrieved successfully!",
posts: documents
});
});