在填充时连接字符串

时间:2013-12-24 10:28:04

标签: node.js mongodb mongoose populate

以下是填充相册及其图片的代码:

server.get(url_prefix + '/image', function(req, res, next) {
        var album_id = req.query.album_id
        Album.findOne(
                {_id : album_id}
             )
             .populate('images')
             .exec(function (err, album) {
                if (album) {
                    return res.send({
                        status: {
                            error: 0,
                            message: "Successful"
                        },
                        data: {
                            album: album
                        }
                    })
                } else
                    return notify_error(res, "No Results", 1, 404)
             })


    })

相册架构:

var AlbumSchema = new Schema(
{
    userId:{ 
        type: String, 
        trim: true
    },
    albumName:{ 
        type: String, 
        trim: true
    },
    albumDescription:{ 
        type: String, 
        trim: true
    },
    imageCount:{ 
        type: Number,
        default: 0
    },
    timestamp:{ 
        type: String, 
        trim: true
    },
    albumThumbnail:{ 
        type: Object
    }, 
    images : [{ 
                type: Schema.Types.ObjectId, 
                ref: 'Image' 
              }
    ]
})

图片架构:

var ImageSchema = new Schema(
{
    _album : { type: String, ref: 'Album' },
    imageName:{ 
        type: String, 
        trim: true
    },
    imageDescription:{ 
        type: String, 
        trim: true
    },
    timestamp:{ 
        type: String, 
        trim: true
    },
    imageURL:{ 
        type: String, 
        trim: true
    },
    imageURLSmall:{ 
        type: String, 
        trim: true
    },
    imageThumbnailURL:{ 
        type: String, 
        trim: true
    },
    likeCount:{ 
        type: Number,
        default: 0
    },
    commentCount:{ 
        type: Number,
        default: 0
    },
    userLike:{
        type: Boolean,
        default: false
    }
})

我能够填充相册及其图片,在图片架构中imageURL仅包含图片名称(image.jpg),因此在检索时我希望它像http://localhost/assets/profile/image.jpg我有在填充数据时或在发送数据之前执行此操作,因为此API由移动设备使用,因此他们需要完整路径来显示图像。

那么如何在填充数据时将字符串添加到mongodb中的字段?

提前致谢

1 个答案:

答案 0 :(得分:1)

试试这个:

ImageSchema
    .post('init', function(obj) {
        var url = 'http://localhost/assets/profile/'
        obj.imageURL = url + obj.imageURL
    })

每次从数据库中获取对象时都会执行此功能。