如何在我的 Mongoose 架构和 Express.js 控制器中检索
deviceId
作为单个数值?
我使用 Mongoose 和 Express.js 来保存汽车记录,并且我将
deviceId
字段定义为 SchemaTypes.Long
以容纳大量数据。保存记录后,响应将 deviceId
作为具有 low
、high
和 unsigned
属性的对象包含在内。但是,我需要将此值作为单个数值检索。
const mongoose = require("mongoose");
require('mongoose-long')(mongoose);
var SchemaTypes = mongoose.Schema.Types;
const carSchema = new mongoose.Schema({
name: { type: String, required: true },
deviceId: { type: SchemaTypes.Long, required: true, unique: true }
}, { versionKey: false, virtuals: true });
module.exports = mongoose.model("car", carSchema);
exports.carDemo = catchAsync(async (req, res, next) => {
const car = await Car.create(req.body);
res.status(statusCode.OK).json(
car
);
});
我希望响应将
deviceId
作为单个数值包含在内,类似于在请求正文中提供的方式。
API响应 响应体
预计
{
"name": "I20",
"deviceId":997786565423234,
"_id":"66cf265cdcd77799f701efef"
}
为什么因为它最初是在 BSON 对象中,你需要使用
toNumber
方法来获取该表示。
res.status(statusCode.OK).json(
...car,
deviceId : car.deviceId.toNumber()
);