以下是填充相册及其图片的代码:
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中的字段?
提前致谢
答案 0 :(得分:1)
试试这个:
ImageSchema
.post('init', function(obj) {
var url = 'http://localhost/assets/profile/'
obj.imageURL = url + obj.imageURL
})
每次从数据库中获取对象时都会执行此功能。