javascript - id 字段的 Mongoose 请求返回 id 和 _id

标签 javascript json node.js mongodb mongoose

在我的 Mongoose 架构中,我有一个 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 字段。为什么会这样,我该如何阻止它?

最佳答案

find() 函数中,您可以传递两个参数(条件和投影)。投影是您想要(或不需要)的字段。在您的情况下,您可以将代码更改为

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

它应该这样做。

关于javascript - id 字段的 Mongoose 请求返回 id 和 _id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27840172/

相关文章:

通过对象的 JavaScript 值求和

android - 获取 JSON 并对其进行操作

sql - 将 SQL 查询结果作为 Node.js 中的变量返回

javascript - 如何使用 mongoose 打开和关闭 TTL 索引?

javascript - 切换子对象的类

javascript - 如何使用 jQuery 阻止内容跳到固定导航后面

javascript - 解析 sdk 和 node.js 时遇到问题

javascript - 如何在 Javascript 中调用祖父类的 setter

java - RESTful API - 批量操作的分块响应

node.js - "Error: spawn cmd ENOENT"在 Expo 初始化项目中