从 Mongoose 架构中检索单个数字设备 ID

问题描述 投票:0回答:1

如何在我的 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"
}
node.js mongodb express mongoose mongoose-schema
1个回答
0
投票

为什么因为它最初是在 BSON 对象中,你需要使用

toNumber
方法来获取该表示。

res.status(statusCode.OK).json(
   ...car,
   deviceId : car.deviceId.toNumber()
);
© www.soinside.com 2019 - 2024. All rights reserved.