我在mongoose中使用嵌入式文档数据模型,我的数据就像这样
var firstuser1 = new user({userid: 'absj8d55',
tokenid: 'akn178i3',
media: [{mediaid: 'mid01',mediaurl: 'dl.ingrm.com/mid01'},{mediaid: 'mid03', mediaurl: 'dl.ingrm.com/mid03'}]
});
我保存它然后我想在浏览器上显示它,所以我使用这个功能:
app.get('/allmedia', function(req, res) {
user.find({},function(err, myuser) {
res.send(myuser);
//console.log(myuser);
})});
用户是我的模特:
var userschema = new mongoose.Schema({
userid: {type: String, unique: true},
tokenid: {type: String, sparse: true, default: null}},{
media: {
mediaid: String,
mediaurl: String
}
});
var user = mongoose.model('mydb', userschema);
你运行这段代码,但我得到的就是:
[{" _id":" 5780e1e5797fc3181865686b""用户ID":" absd1234"" tokenid&#34 ;: " akdndkdn12345678"}
它没有显示媒体!!
我在哪里做错了?
感谢。
答案 0 :(得分:1)
在userschema
构造函数中,您将media
对象设置为第二个参数。模式构造函数中的第二个参数是options
对象。改变这个:
var userschema = new mongoose.Schema({
userid: {type: String, unique: true},
tokenid: {type: String, sparse: true, default: null}
},{
media: {
mediaid: String,
mediaurl: String
}
})
为:
var userschema = new mongoose.Schema({
userid: {type: String, unique: true},
tokenid: {type: String, sparse: true, default: null},
media: [{
mediaid: String,
mediaurl: String
}]
})
另外,正如@Saleem所提到的,在你的模型media
中是一个对象,而不是一个数组。因此,将更改架构更改为:
var userschema = new mongoose.Schema({
userid: {type: String, unique: true},
tokenid: {type: String, sparse: true, default: null},
media: [{
mediaid: String,
mediaurl: String
}]
})