[英]How to Join Two table using MongoDB + Node.js API?
我是 node.js 的新手,mongodb 使用谷歌的幫助創建了 api
使用 monogdb + nodejs 創建了 Api。
使用單表 CURD 操作正常工作
但是不知道怎么加入node.js
request.model.js
const mongoose = require('mongoose');
const RequestSchema = mongoose.Schema({
userId: String,
title: String,
description: String
}, {
timestamps: true
});
module.exports = mongoose.model('Request', RequestSchema);
用戶模型.js
const mongoose = require('mongoose');
const UserSchema = mongoose.Schema({
firstname: String,
lastname: String
}, {
timestamps: true
});
module.exports = mongoose.model('User', UserSchema);
用戶控制器.js
const User = require('../models/user.model.js');
// Retrieve and return all notes from the database.
exports.findAll = (req, res) => {
jwt.verify(req.token, 'secretkey', (err, authData) => {
if(err){
res.sendStatus(403);
}else{
User.find()
.then(user => {
res.send(user);
}).catch(err => {
res.status(500).send({
message: err.message || "Some error occurred while retrieving user."
});
});
}
})
};
request.controller.js
const Request = require('../models/request.model.js');
// Retrieve and return all notes from the database.
exports.findAll = (req, res) => {
jwt.verify(req.token, 'secretkey', (err, authData) => {
if(err){
res.sendStatus(403);
}else{
Request.find()
.then(request => {
res.send(request);
}).catch(err => {
res.status(500).send({
message: err.message || "Some error occurred while retrieving request."
});
});
}
})
};
請求表數據結構
{
"_id": {
"$oid": "5e3bef0be7b75760bf31d4c8"
},
"userId": "5e3bdf5919c9d8586d7f2455",
"title": "test title",
"description": "test desc",
"createdAt": {
"$date": {
"$numberLong": "1580986123184"
}
},
"updatedAt": {
"$date": {
"$numberLong": "1580986123184"
}
},
"__v": {
"$numberInt": "0"
}
}
用戶表數據結構
{
"_id": {
"$oid": "5e3bdf5919c9d8586d7f2455"
},
"firstname": "bhavik",
"lastname": "gajjar",
"createdAt": {
"$date": {
"$numberLong": "1580982105830"
}
},
"updatedAt": {
"$date": {
"$numberLong": "1580982105830"
}
},
"__v": {
"$numberInt": "0"
}
}
提前致謝
如果要查詢已加入用戶的請求,請執行以下操作:
Request.aggregate([
{
$lookup: {
from: "Users", // collection name in db
localField: "userId",
foreignField: "_id",
as: "user"
}
}
])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.