var mongoose = require('mongoose'), Schema = mongoose.Schema
var personSchema = Schema({
// _id默认为Schema.Types.ObjectId类型
_id : Number,
name : String
});
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);
var alice = new Person({ _id: 0, name: 'Alice'});
# 保存其ID即可
var story = new Story({ title: 'xx', creator: alice._id });
Story.findOne({title: 'yy'})
.populate('creator')
.exec(function(err, story){
if(err) throw err;
console.log(story.creator.name);
});
Story.findOne({title: 'xx'})
.populate('creator', 'name') // 只返回Person的name字段
.exec(function(err, story){
if(err) throw err;
console.log(story.creator.name);
});
Story.find(...)
.populate('creator fans')
.exec();
Story.find(...)
.populate('creator')
.populate('fans')
.exec();
Story.find(...)
.populate({
path: 'fans',
match: { age: { $gte: 21 }},
select: 'name',
options: { limit: 5 }
});
.exec();
var userSchema = new Schema({
name: String,
friends: [{ type: ObjectId, ref: 'User' }]
});
User.
findOne({ name: 'Val' }).
populate({
path: 'friends',
populate: { path: 'friends' }
});
var userSchema = new Schema({
_id: Number,
name: String,
teacher: Number
});
User.
findOne({ name: 'Val' }).
populate({
path: 'teacher',
model: 'User' // 在User集合中查找该ID
})
var user = { name: 'Indiana Jones', weapon: 389 };
User.populate(user, { path: 'weapon', model: 'Weapon' }, function (err, users) {
console.log(user.weapon.name);
});
var user = { name: 'Indiana Jones', weapon: 389 };
Weapon.populate(user, { path: 'weapon' }, function (err, users) {
console.log(user.weapon.name);
});
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有