【发布时间】:2019-02-24 18:20:54
【问题描述】:
const allocation_me = async (request, response) => {
try {
const { user: userid } = request;
if (!ObjectId.isValid(userid)) throw new Error('invalid objectid');
const now = moment().format();
const date = new Date(now);
const allocation = await Allocation.findOne({ $and: [{ user: userid, start_date: { $lt: date }, end_date: { $gt: date } }] })
.populate('user', 'name')
.populate('garden');
if (!allocation) throw new Error('invalid request');
allocation.timestamp = moment(allocation.end_date).format('x');
response.status(200).send(allocation);
} catch (error) {
response.status(400).send(error);
}
};
我正在尝试将时间戳添加到 mongo 查询返回的对象,但是当它发送分配作为响应时,时间戳不会显示。我尝试记录 allocation.timestamp 值,但它也没有显示,就像 javascript 忽略了我分配它一样。我尝试从 const 更改为 let,但显然这不是问题。
【问题讨论】:
-
您还可以在这里使用
.lean()...类似.populate('user', 'name') .populate('garden').lean()...
标签: javascript mongodb mongoose async-await