gpt4 book ai didi

javascript - 通过 GET 发送嵌套对象

转载 作者:行者123 更新时间:2023-12-02 22:10:21 25 4
gpt4 key购买 nike

我有一个非常基本的模式,其中有另一个名为 Vehicle 的对象

let rentSchema = new Schema({
code: {
type: Number
},
vehicle: {
type: mongoose.Schema.Types.ObjectId,
ref: 'Vehicle'
},
ongoing: {
type: Boolean,
default: false
}
}, {collection: 'RentCollection'});

在 Controller 中查找所有内容

exports.getRent = function (req, res) {
// Find in the DB
rentSchema.find({}, function (err, rent) {
if (err) res.status(400).send(err);

res.json(rent);
});
};

响应以租金数组形式出现,但租金对象中缺少车辆对象。这是为什么?

_id: "5e04c19d0a0a100f58bd64b5"
__v: 0
ongoing: false

最佳答案

以下是使其发挥作用的分步说明:

1-) 首先,您需要创建一个模型并将其导出,如下所示:

租金.js

const mongoose = require("mongoose");
const Schema = mongoose.Schema;

let rentSchema = new Schema(
{
code: {
type: Number
},
vehicle: {
type: mongoose.Schema.Types.ObjectId,
ref: "Vehicle"
},
ongoing: {
type: Boolean,
default: false
}
},
{ collection: "RentCollection" }
);

module.exports = mongoose.model("Rent", rentSchema);

2-) 假设您有以下车辆型号:

车辆.js

const mongoose = require("mongoose");
const Schema = mongoose.Schema;

let vehicleSchema = new Schema(
{
name: String
},
{ collection: "VehicleCollection" }
);

module.exports = mongoose.model("Vehicle", vehicleSchema);

3-) 首先让我们在 VehicleCollection 中创建这样的车辆:

{
"_id": "5e0f465205515667746fd51a",
"name": "Vehicle 1",
"__v": 0
}

4-) 然后让我们使用此车辆 ID 在 RentCollection 中创建一个租赁文档,如下所示:

{
"ongoing": false,
"_id": "5e0f46b805515667746fd51d",
"code": 1,
"vehicle": "5e0f465205515667746fd51a",
"__v": 0
}

5-) 现在我们可以使用下面的代码,到populate车辆与租金。

const Rent = require("../models/rent"); //todo: change to path to the rent.js

exports.getRent = function(req, res) {
Rent.find({})
.populate("vehicle")
.exec(function(err, rent) {
if (err) {
res.status(500).send(err);
} else {
if (!rent) {
res.status(404).send("No rent found");
} else {
res.json(rent);
}
}
});
};

6-) 结果将是:

[
{
"ongoing": false,
"_id": "5e0f46b805515667746fd51d",
"code": 1,
"vehicle": {
"_id": "5e0f465205515667746fd51a",
"name": "Vehicle 1",
"__v": 0
},
"__v": 0
}
]

关于javascript - 通过 GET 发送嵌套对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59579395/

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