nest 中使用mongoose怎么才能在新建的时候去掉_id
时间: 2024-03-03 18:48:34 浏览: 130
在使用mongoose时,可以通过在Schema中设置`_id`属性的`default`值为`false`来实现新建时去掉`_id`。具体实现方式如下:
```javascript
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const mySchema = new Schema({
// 其他属性
}, {
_id: false // 设置 _id 的 default 值为 false
});
const myModel = mongoose.model('myModel', mySchema);
```
这样,当使用`myModel.create()`或者`new myModel()`创建新的文档时,就不会包含`_id`属性了。需要注意的是,这样设置后,就不能通过`_id`属性来查找文档了,需要使用其他属性或者自定义的id来查找。
相关问题
nest中mongoose在新建文档时去掉_id,在schema中将_id设置为false和使用toJson()都是错误的,请再给我一个方法
你可以在定义 schema 时使用 `id: false` 来去掉自动生成的 `_id` 字段,如下所示:
```
const schema = new mongoose.Schema({
// 其他字段
}, { id: false });
```
这样定义后,每次创建新文档时就不会自动生成 `_id` 字段了。
nest 在mongoose create的时候去掉_id字段的展示
可以在定义 Schema 时,将 `_id` 字段设置为 `false`,这样在创建文档时就不会生成 `_id` 字段。示例代码如下:
```javascript
const mySchema = new mongoose.Schema({
name: String,
age: Number
}, {
versionKey: false,
_id: false
});
const myModel = mongoose.model('MyModel', mySchema);
```
在上面的示例中,我们将 `_id` 属性设置为 `false`,并且将 `versionKey` 属性也设置为 `false`,这样在创建文档时,不仅不会生成 `_id` 字段,也不会生成 `__v` 字段。
阅读全文