首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >猫鼬.populate()不填充

猫鼬.populate()不填充
EN

Stack Overflow用户
提问于 2015-11-13 00:08:08
回答 1查看 1.6K关注 0票数 2

我尝试了几种不同的方法,但无法让Mongoose将Users信息填充到Items集合中。

文件: users.js

代码语言:javascript
复制
var mongoose = require( 'mongoose' )
    Schema = mongoose.Schema,
    ObjectId = Schema.Types.ObjectId;

var userSchema = Schema( {
    _id: ObjectId,
    barcode: String,
    name: String,
    email: String,
    type: String
} );

var Users = mongoose.model( 'Users', userSchema );

module.exports = Users;
module.exports.schema = userSchema;

文件: items.js

代码语言:javascript
复制
var mongoose = require( 'mongoose' )
    Schema = mongoose.Schema,
    ObjectId = Schema.ObjectId,
    Users = require( __dirname + '/users' ),
    userSchema = Users.schema;

var itemSchema = Schema( {
    _id: ObjectId,
    name: String,
    barcode: String,
    transactions: [ {
        date: Date,
        user: { type: ObjectId, ref: 'Users' },
        status: String
    } ]
} );

var Items = mongoose.model( 'Items', itemSchema );

module.exports = Items;
module.exports.schema = itemSchema;

这是我的测试代码:

代码语言:javascript
复制
var mongoose = require( 'mongoose' );
mongoose.connect( 'mongodb://localhost/booker' );

var Users = require( __dirname + '/models/users' );
var Items = require( __dirname + '/models/items' );

Items.findOne().populate( 'user' ).exec( function( err, arr ) {
    console.log( arr );
} );

本质上,问题是数组没有将用户信息填充到项中。

我做错什么了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-13 13:27:28

正在填充的user字段嵌套在transactions数组字段的子文档中,因此需要在populate调用中包含其完整路径:

代码语言:javascript
复制
Items.findOne().populate( 'transactions.user' ).exec( function( err, arr ) {
    console.log( arr );
} );
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33683776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档