【发布时间】:2016-03-19 17:05:26
【问题描述】:
我有这个 JSON 文档(见 mongolab):
{
"_id": {
"$oid": "566e8673eb862d165fef7171"
},
"street": "Dizingof",
"buildingNumber": 33,
"apartmentNumber": 63,
"beds": 3,
"owner": {
"_id": {
"$oid": "564374944cb813541afc193a"
},
"local": {
"password": "$2a$08$PtZrvLY7MWSi44gMDSjLJ.u4x.IOXIkRFZYfQhAwt.5vSIXpCYjX6",
"email": "someemail@gmail.com"
},
"__v": 0
}
}
其架构中的owner字段定义为:
owner : {
type: Schema.ObjectId,
ref: 'User'
}
当我执行http.get 以获取我收到的列表时:
{
"_id": "566e8673eb862d165fef7171",
"street": "Dizingof",
"buildingNumber": 33,
"apartmentNumber": 63,
"beds": 3,
"imagesAndCount": [],
"UsersAndQuestions": []
}
为什么我看不到/使用 owner 字段?我需要它来处理我的 HTML 文档。
编辑:这是routes.js中的相关GET:
app.get('/api/listing/:street/:buildingNumber/:apartmentNumber', function (req, res) {
Listing.findOne(
{
"street": req.params.street,
"buildingNumber": req.params.buildingNumber,
"apartmentNumber": req.params.apartmentNumber
}
, function (err, listing) {
if (err) { return next(err); }
res.json(listing);
});
});
另外,我通过这样做填充了owner 字段:
var myUser = db.users.findOne()
db.listings.insert({"street" : "Dizingof", "buildingNumber" : 33, "apartmentNumber" : 63, "beds": 3, "owner": myUser})
【问题讨论】:
-
你能显示你正在做的查询吗?
-
@Alex 我正在使用 POSTMAN 进行查询:localhost:3000/api/listing/Dizingof/33/63
-
不,我的意思是您对 mongodb 的查询。你已经标记了 mongoose,所以你必须在某处查询 mongodb
-
谢谢 - 你如何填充这些数据?您已在架构中将
owner的类型设置为ref,但这看起来您已将其他数据注入该字段? -
@Alex 再次编辑了我的帖子
标签: javascript angularjs json mongodb mongoose