Node.js 子文档的meanjs控制器

Node.js 子文档的meanjs控制器,node.js,mongodb,mongoose,meanjs,subdocument,Node.js,Mongodb,Mongoose,Meanjs,Subdocument,我有一个关于如何为mongoose子文档设计meanjs控制器和路由的架构问题 我的模型如下所示: 'use strict'; /** * Module dependencies. */ var mongoose = require('mongoose'), Schema = mongoose.Schema; /** * Customerrpc Schema */ var CustomerrcpSchema = new Schema({ company: { type

我有一个关于如何为mongoose子文档设计meanjs控制器和路由的架构问题

我的模型如下所示:

'use strict';

/**
 * Module dependencies.
 */
var mongoose = require('mongoose'),
  Schema = mongoose.Schema;

/**
 * Customerrpc Schema
 */
var CustomerrcpSchema = new Schema({
  company: {
    type: String,
    enum: ['Option1', 'Option2'],
    required: 'Please fill company name'
  },
  rcp: {
    type: String,
    required: 'Please fill rcp'
  },
  created: {
    type: Date,
    default: Date.now
  },
  user: {
    type: Schema.ObjectId,
    ref: 'User'
  }
});

/**
 * Customer Schema
 */
var CustomerSchema = new Schema({
  name: {
    type: String,
    default: '',
    required: 'Please fill Customer name',
    trim: true
  },
  description: {
    type: String,
    default: '',
    //required: 'Please fill Customer description',
    trim: true
  },
  url: {
    type: String,
    default: '',
    //required: 'Please fill Customer url',
    trim: true
  },
  rcp: [CustomerrcpSchema],
  created: {
    type: Date,
    default: Date.now
  },
  user: {
    type: Schema.ObjectId,
    ref: 'User'
  }
});

mongoose.model('Customer', CustomerSchema);
mongoose.model('Customerrcp', CustomerrcpSchema);
在创建方法期间,我通过在服务器控制器上添加以下代码进行了尝试:

exports.create = function(req, res) {
  var customer = new Customer(req.body);
  customer.user = req.user;


  var rcp = new Customerrcp({
    company: 'Option1',
    rcp: 'dumm',
    user: req.user
  });

  customer.rcp = rcp;


  customer.save(function(err) {
    if (err) {
      return res.status(400).send({
        message: errorHandler.getErrorMessage(err)
      });
    } else {
      res.jsonp(customer);
    }
  });
};
这个很好用。现在我的问题是,从主文档中创建/修改/删除子文档的最佳过程是什么

我曾想过总是使用主文档“Customer”,但这带来了一些我不喜欢的问题,比如总是保存空文档。因为我对每个子文档都有一个uniq\u id,所以我想一定有更好的方法

我想要的是只为子文档提供一个控制器,并为其提供create/save/remove语句。这可能吗

据我所知: 要创建新的子文档,我需要以下内容:\ mongoose查询的主文档的id。因此,我需要一项服务,将主文档的_id移交给所选子文档的控制器。我能做到这一点

但是如果这是正确的方法,我就没有安全感。 有什么想法吗

干杯,
Michael

您是否有意选择子文档与关系?如果有子文档,则始终需要知道主文档才能操作子文档。如果您需要独立操作子文档,您可能希望为其创建一个单独的集合并引用它。感谢您的反馈!是的,我也得到了解决方案。关系不是这个应用程序的最佳解决方案,因为我不会增加2-3MB的电源输入,它非常简单:)但感谢您的回复!您是否有意选择子文档与关系?如果有子文档,则始终需要知道主文档才能操作子文档。如果您需要独立操作子文档,您可能希望为其创建一个单独的集合并引用它。感谢您的反馈!是的,我也得到了解决方案。关系不是这个应用程序的最佳解决方案,因为我不会增加2-3MB的电源输入,它非常简单:)但感谢您的回复!