gpt4 book ai didi

javascript - 在 GET 响应中看不到 JSON 字段( Mongoose )

转载 作者:可可西里 更新时间:2023-11-01 09:15:05 24 4
gpt4 key购买 nike

我有这个 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})

最佳答案

你的问题是这个

owner :{
type: Schema.ObjectId,
ref: 'User'
}

Mongoose 期待对文档的引用,然后使用 populate(顺便说一句,它只适用于类型数组)进行混合,因此不会将其作为查询的一部分返回。

假设您使用的是 4.2 的 mongoose,您可以执行以下操作:

http://mongoosejs.com/docs/subdocs.html#altsyntax

var ownerSchema= new Schema({ name: 'string', otherProperty: 'string' });

var parentSchema = new Schema({
owner: ownerSchema
});

关于javascript - 在 GET 响应中看不到 JSON 字段( Mongoose ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34263278/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com