簡體   English   中英

如何使用 MongoDB + Node.js API 連接兩個表?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM