javascript - 如何修复我的猫鼬查询随机无法找到未更改的文档?
问题描述
我的猫鼬(5.5.15)查询有时能够“findById”文档并根据提供的条件查询“选择”子文档。但是,仅仅一秒钟后(或任何时间),完全相同的请求无法返回任何内容。MongoDb 文档没有任何变化,所以它一定是我做错了。
我已经使用 console.log(nextDeliveryDate) 在查询似乎失败并且日志的输出似乎相同时获取日期对象输出(当然与之前的时间差除外)。因此,错误似乎是完全随机且不受控制的。
const today = new Date();
let nextDeliveryDate = new Date();
nextDeliveryDate.setHours(0);
nextDeliveryDate.setMinutes(0);
nextDeliveryDate.setSeconds(0);
if (today.getDay() < 2) {
nextDeliveryDate.setDate(today.getDate() + (2 - today.getDay()));
} else {
nextDeliveryDate.setDate(today.getDate() + (7 - today.getDay()));
}
const result = await Kitchen.findById(req.query.kitchen).select({
deliveries: {
"$elemMatch": {
delivery_date: {
$gte: nextDeliveryDate
}
}
}
}).exec();
// SCHEMA from a different file
const kitchenSchema = mongoose.Schema({
_id: mongoose.Schema.Types.ObjectId,
_created: Date,
_lastModified: {
type: Date,
default: Date.now
},
name: {
type: String,
required: true,
unique: true
},
location: {
street: String,
unit: String,
city: String,
state: String,
zipcode: Number,
latitude: Number,
longitude: Number
},
routes: [{
type: mongoose.Schema.Types.ObjectId,
ref: 'Routes'
}],
manager: {
type: String
},
employees: [{
type: String
}],
deliveries: [{
_id: mongoose.Schema.Types.ObjectId,
_created: Date,
weekday: Number,
delivery_date: Date,
routes: [{...}],
status: {
type: String,
default: 'preparing'
}
}]
});
因此,有时我会得到我期望的完美结果(来自数组的正确交付对象),有时它只是找不到任何东西。请帮忙。谢谢。
解决方案
推荐阅读
- mpdf - mPDF CSS 类,用于嵌套的文本颜色
- 被父母的颜色覆盖
- java - itext 将 PDF 拆分为多个 PDF,但大小相同
- json - 是否可以将 JSON 子对象直接读取为 JSON DOM 对象或 Data 或其他一些通用格式?
- python - Cloudera Data Science Workbench 访问 Windows Server 上的共享驱动器
- swiftui - 如何在swiftUI中的List中设置空列背景颜色?
- r - 如何将字符串转换为变量并循环通过 group_by?
- python - 将用户输入与文本文件进行比较
- ruby - 如何在 Sinatra 中使用 DSL 元编程
- python - 在 Pandas DataFrame 中附加字符串并累积计数
- android - java.lang.IllegalStateException: getCallbackCaptor.capture() 不能为空