Javascript Can';在GET响应(mongoose)中看不到JSON字段
我有这个JSON文档(如中所示): 其架构中的Javascript Can';在GET响应(mongoose)中看不到JSON字段,javascript,angularjs,json,mongodb,mongoose,Javascript,Angularjs,Json,Mongodb,Mongoose,我有这个JSON文档(如中所示): 其架构中的owner字段定义为: owner : { type: Schema.ObjectId, ref: 'User' } 当我执行http.get以获取我收到的列表时: { "_id": "566e8673eb862d165fef7171", "street": "Dizingof", "buildingNumber": 33, "ap
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
:
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})
你的问题是这个
owner :{
type: Schema.ObjectId,
ref: 'User'
}
Mongoose希望引用一个文档,然后使用填充
(顺便说一句,它只适用于类型数组),因此不会将其作为查询的一部分返回
假设您使用的是4.2版猫鼬,您可以执行以下操作:
你能展示一下你正在做的查询吗?@Alex我在用邮递员进行查询:不,我是说你对mongodb的查询。您已经标记了mongoose,所以您必须使用Somewhere查询mongodb谢谢-您如何填充此数据?您已在模式中将
owner
的类型设置为ref
,但这看起来像是您将其他数据输入了该字段?@Alex再次编辑了我的帖子Hanks,我尝试定义“owner:[User]”,但我的get-resonse JSON中仍然只有一个空数组。。。我如何实际获取用户对象?您现在指定了一个数组,但存储了一个对象。。。它必须是一个或另一个。另外,您想将用户对象存储为嵌入文档,还是存储在其自己的集合中?当我尝试:owner:User时,它给了我一个错误:TypeError:Undefined type atowner
我只想将其作为“硬编码”存储对象,即使该特定用户已更新,也不需要在以后更改
owner :{
type: Schema.ObjectId,
ref: 'User'
}
var ownerSchema= new Schema({ name: 'string', otherProperty: 'string' });
var parentSchema = new Schema({
owner: ownerSchema
});