Javascript 获取最新数据时遇到问题';他在nodejs
我在从MongoDB获取最新数据时遇到了这个问题。每3小时,当我获取最新数据时,我就会将数据推送到MongoDB,因为我面临一个问题 这是模式Javascript 获取最新数据时遇到问题';他在nodejs,javascript,node.js,Javascript,Node.js,我在从MongoDB获取最新数据时遇到了这个问题。每3小时,当我获取最新数据时,我就会将数据推送到MongoDB,因为我面临一个问题 这是模式 var abc = new Schema({ item_name: String, uploadedDate: String, //"6-29-2019" date : Date }); 获取最新数据的 req.body.UPLOADEDATE=“7-2-2019”字符串 我无法找到它为什么给出空数组。请帮我解决这个问题。for
var abc = new Schema({
item_name: String,
uploadedDate: String, //"6-29-2019"
date : Date
});
获取最新数据的
req.body.UPLOADEDATE=“7-2-2019”字符串
我无法找到它为什么给出空数组。请帮我解决这个问题。for循环中的代码是异步的。 因此,在for循环中的查询运行完毕之前,将发送一个空结果作为响应 在发送响应之前,应该让代码等待查询完成运行
router.post('/todayList', (req, res, next) => {
abc
.find({ uploadedDate: { $eq: req.body.uploadedDate } })
.then(product => {
let final = funct.duplicate(product, 'item_name')
var promises = []
final.forEach((err, documents) => {
promises.push(
new Promise((resolve, reject) => {
if (err) return reject(err)
abc
.find({ item_name: comp.item_name, uploadedDate: { $eq: req.body.uploadedDate } })
.sort({ date: -1 })
.limit(1)
.exec((err, docs) => {
if (err) return reject(err)
resolve(docs)
})
})
)
})
Promise.all(promises).then(result => {
res.status(200).json({
data: result
})
})
})
.catch(err => {
console.log(err)
res.status(500).json({
error: err
})
})
})
您是否可以发布一个您试图获取的项目的示例,因为它位于mongo内部,并且您正在发送的实际查询是GN(
req.body.uploadedDate
)。如果数据确实存在,我猜它缺少一个前导的0
:7-02-2019
。这就是为什么使用更具体的类型很有用的原因,即解析uploadeDate
到日期对象ann中,然后在mongodate
上进行过滤,这样可以更好地保证数据的有效性
router.post('/todayList', (req, res, next) => {
abc
.find({ uploadedDate: { $eq: req.body.uploadedDate } })
.then(product => {
let final = funct.duplicate(product, 'item_name')
var promises = []
final.forEach((err, documents) => {
promises.push(
new Promise((resolve, reject) => {
if (err) return reject(err)
abc
.find({ item_name: comp.item_name, uploadedDate: { $eq: req.body.uploadedDate } })
.sort({ date: -1 })
.limit(1)
.exec((err, docs) => {
if (err) return reject(err)
resolve(docs)
})
})
)
})
Promise.all(promises).then(result => {
res.status(200).json({
data: result
})
})
})
.catch(err => {
console.log(err)
res.status(500).json({
error: err
})
})
})