![](/img/trans.png)
[英]Meteor & MongoDB. Troubles with getting data from collection (finding documents between two dates)
[英]Relation between two collection mongodb
我的mongodb库中有2个收藏集:Category和Book
category.js
var mongoose = require("mongoose");
var Schema = mongoose.Schema;
var categoryModel = new Schema({
catName: String,
menuKey: String
});
module.exports = mongoose.model('Category', categoryModel);
和book.js
var mongoose = require("mongoose");
var Schema = mongoose.Schema;
var bookModel = new Schema({
title: String,
author: String,
category: String ,
summary: String ,
cover: String ,
price: Number,
qte: Number,
});
module.exports = mongoose.model('book', bookModel);
可以添加:
var category = require('./category.js')
并替换此行:
类别:字符串,
通过
类别:[类别],
这是满足您要求的解决方案。
//category.js
var mongoose = require("mongoose");
var Schema = mongoose.Schema;
var categoryModel = new Schema({
catName: String,
menuKey: String
});
module.exports = mongoose.model('Category', categoryModel);
//book.js
var mongoose = require("mongoose");
var Schema = mongoose.Schema;
var bookModel = new Schema({
title: String,
author: String,
category: [{ type: Schema.Types.ObjectId, ref: 'Category' }],
summary: String ,
cover: String ,
price: Number,
qte: Number,
});
module.exports = mongoose.model('book', bookModel);
category: {type: mongoose.Schema.Types.ObjectId, ref: 'Category'}
您不想这样做。 您想要使用ref
关键字指示关系,您可以使用ref
关键字引用另一个集合中的Schema.ObjectId
。
从猫鼬的官方填充文档中:
var mongoose = require('mongoose')
, Schema = mongoose.Schema
var personSchema = Schema({
_id : Number,
name : String,
age : Number,
stories : [{ type: Schema.Types.ObjectId, ref: 'Story' }]
});
var storySchema = Schema({
_creator : { type: Number, ref: 'Person' },
title : String,
fans : [{ type: Number, ref: 'Person' }]
});
var Story = mongoose.model('Story', storySchema);
var Person = mongoose.model('Person', personSchema);
就您而言,您将有一个Book
模型引用Category
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.