猫鼬如何在保存时返回特定字段

时间:2020-07-02 06:08:06

标签: mongoose

使用Mongoose保存()新文档时。您如何选择要返回的字段?

const productV2 = new ProductV2({ _id: req.query.po_product_id });

productV2.save(function (err, product) {
  if (err) {
    res.status(500).json({ error: err });
  } else {
    console.log('product', product);
    console.log(3);

    res.send(product);
  }
});

1 个答案:

答案 0 :(得分:0)

干净的方法是在猫鼬实例上定义要返回特定字段的方法。

例如,如果您有这样的ProductV2模式,例如:

const ProductV2 = new mongoose.Schema({
  name: String,
  price: Number,
  count: Number
})

// You can define an instance method on your schema

ProductV2.methods.getSpecificFields = function() {

  // For example you want to retrieve only name and price fields
  return {
    name: this.name,
    price: this.price
  } 
}

定义instance method后,您可以在代码中使用它:

const productV2 = new ProductV2({ _id: req.query.po_product_id });

productV2.save(function (err, product) {
  if (err) {
    res.status(500).json({ error: err });
  } else {
    console.log('product', product);
    console.log(3);

    res.send(product.getSpecificFields());
  }
});

要了解有关instance methodsstatics methods的更多信息,请参见this