Node Js - 我需要参考或嵌入我的Mongoose Schema吗?

时间:2017-10-24 07:13:59

标签: angularjs node.js mongodb mongoose

我知道在ref中有很多关于embedmongoose schema架构的讨论。我有点学习node,我有RDBMs的背景。我正在使用mongoose。我有一个非常简单的场景,我已经实现了它。我遇到的问题是使用embedref

方案

我的情景是,我有两个模型product& categories。 b / w的关系是many to many。首先让我告诉你我的模特。

类别架构

const mongoose = require('mongoose');

//function to call monggose schema
const CategorySchema = mongoose.Schema({
    category_name: {
        type: String,
        required: true
    }
})

const Category = module.exports = mongoose.model('Category', CategorySchema);

产品架构

const mongoose = require('mongoose');

    const ProductSchema = mongoose.Schema({
        product_name: {
            type: String,
            required: true
        },
        product_rating: {
            type: Number,
            required: true
        },
        product_price: {
            type: String,
            required: true
        },
        product_btc: {
            type: String,
            required: true
        },
        product_mode: {
            type: String,
            required: true
        },
        product_date: {
            type: String,
            required: true
        },
        product_hasrate: {
            type: String,
            required: true
        },
        product_powerConsumption: {
            type: String,
            required: true
        },
        product_efficiency: {
            type: String,
            required: true
        },
        product_voltage: {
            type: String,
            required: true
        },
        product_frequency: {
            type: String,
            required: true
        },
        product_shipment: {
            type: String,
            required: true
        },
        product_warranty: {
            type: String,
            required: true
        },
        product_contact: {
            type: String,
            required: true
        },
        category: [mongoose.Schema.Types.Mixed]






    })

    const Product = module.exports = mongoose.model('Product', ProductSchema);

当我在angularjs中制作前端时,我也很困惑。我在documents表中有三个category,我用邮递员填写。我从前端角度看事情。我将有一个类别下拉列表,用户应选择或多选择其产品的类别。

现在我如何在Product架构中存储类别。他们现在正在存储,但我不是我正在做的事情。我想使用referencing,但可能是我正在混合使用embedref

我希望在我的搜索API中将所有产品整合到一个类别中,并希望获得我产品的所有类别。

我也在阅读mongoose docs,但我更加困惑。因为他们给出的例子与我上面描述的不相关。

    var author = new Person({
  _id: new mongoose.Types.ObjectId(),
  name: 'Ian Fleming',
  age: 50
});

author.save(function (err) {
  if (err) return handleError(err);

  var story1 = new Story({
    title: 'Casino Royale',
    author: author._id    // assign the _id from the person
  });

  story1.save(function (err) {
    if (err) return handleError(err);
    // thats it!
  });
});

如果我没有错,他们会同时关心创造这个人和故事。虽然我已经制作了类别。请善意解决这个问题。

0 个答案:

没有答案