对id的猫鼬请求返回id和_id

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

在我的猫鼬模式中,我有一个id字段,每个文档都有唯一的ID。它运行在默认_id字段所使用的相同系统上,如下所示:

var JobSchema = new mongoose.Schema({
  id: { type:String, required:true, unique:true, index:true, default:mongoose.Types.ObjectId },
  title: { type: String },
  brief: { type: String }
});

module.exports = mongoose.model("Job", JobSchema);

现在,如果我查询架构以获取ID和标题,我会像这样:

Job.find().select("id title").exec(function(err, jobs) {
  if (err) throw err;
  res.send(jobs);
});

但是,我发现它返回了预期的idtitle,但它也返回了默认的_id字段。为什么会这样,如何停止呢?

javascript json node.js mongodb mongoose
2个回答
3
投票

find()函数内部,您可以传递两个参数(标准和投影)。投影是您想要(或不需要)的字段。您可以将代码更改为

Job.find({}, {_id:0, id: 1, title: 1}, function(err, jobs) {
    if (err) throw err;
    res.send(jobs);
});

它应该这样做。


0
投票

[有一个选项可防止在架构级别使用ID。对我来说,这很好用。

new Schema({ name: String }, { id: false });

Mongoose Docs

© www.soinside.com 2019 - 2024. All rights reserved.