Mongoose将 _id 更改为 id。

8 浏览
0 Comments

Mongoose将 _id 更改为 id。

我想知道如何在数据库的直接JSON输出中以虚拟或其他方式将“_id”更改为“id”,以使其外观更美观。此外,我在我的文档中看到了一个生成的“__v”字段,不确定如何隐藏这些字段。

0
0 Comments

在使用Mongoose操作MongoDB时,有时候我们希望将默认的"_id"字段改为"id"字段。下面就是这个问题出现的原因以及解决方法。

问题的出现原因:

默认情况下,Mongoose会自动生成一个名为"_id"的字段来作为每个文档的唯一标识符。然而,有时候我们可能不希望使用"_id"作为标识符,而是希望使用"id"字段。

解决方法:

要将"_id"改为"id",可以在模式定义中使用"versionKey"属性并将其设置为false。具体的解决方法如下:

'use strict';
const mongoose = require('mongoose');
export class DeviceID extends mongoose.Schema {
    constructor() {
        super({
            device_id: String
        },
        {
            versionKey: false
        });
    }
}

在上面的例子中,我们定义了一个名为DeviceID的模式,其中包含一个字段device_id。在模式的第二个参数中,我们将"versionKey"设置为false,这样就可以隐藏掉默认的"_id"字段。

通过这个简单的修改,我们就可以将Mongoose中的"_id"改为"id",从而满足我们的需求。

0