MongoDB中的多表關聯查詢( lookup)

2021-10-03 15:24:05 字數 1905 閱讀 1198

當乙個前端菜雞需要做乙個全棧的畢設專案,真的是太不容易了,特別是我這種資料庫還特別渣的人。

新接觸的mongodb,很多語法也還沒了解透徹,對於所謂的集合巢狀或者集合引用真的是一竅不通,但是最後還是得實現啊,感謝這位大神的分享,這位大哥的詳解真的是十分到位,我終於搞懂了

我的實現過程

前期需求:

使用者集合、粉絲集合。為了將使用者集合和粉絲集合相關聯,然後獲取到每個使用者對應的粉絲和所關注的人

**實現:

node後端**

在models資料夾下新建使用者模型(user.js)和粉絲模型(fans.js)

檔案 (使用者模型)

//引入mongoose模組

const mongoose = require('mongoose')

const schema = mongoose.schema

//定義資料模型,可以看到,我們下面建立了乙個表,表中的資料有欄位,並且這些欄位的資料型別也定義了,最後將model匯出即可

const userschema = new schema(, )

//這裡mongoose.schema最好要寫上第二個引數,明確指定到資料庫中的哪個表取資料,我這裡寫了myhreo,目的就是為了以後運算元據要去myhreo表中。

//這裡不寫第二個引數的話,後面你會遇到坑。

//匯出model模組

const user = module.exports = mongoose.model('user',userschema);

// fans.js (粉絲模型)

//引入mongoose模組

const mongoose = require('mongoose')

const schema = mongoose.schema

//定義粉絲模型

const fansschema = new schema(, )

const fans = module.exports = mongoose.model('fans',fansschema);

然後在需要的路由下(在router資料夾下建立乙個userrouter.js)引用以上模型,寫好後端的介面

//引入express模組

const express = require("express");

//定義路由級中介軟體

const router = express.router();

//引入資料模型模組

const user = require("../models/user");

const fans = require("../models/fans");

//新增使用者

router.post('/adduser', function (req, res) , function (err, data) )

} else )})}

})})//新增粉絲

router.post('/addfans', function (req, res) )

})})

})// 查詢所有使用者資訊路由

router.get('/userlist', function (req, res) },

}], function (err, data) );

});

然後在前端呼叫介面獲取全部使用者資訊即可看到你要的效果了(返回粉絲myfans和關注myloves的使用者情況,因為我要顯示的是數量,所以就直接用myfans.length來獲取數字了)

多表關聯查詢

表別名 多個表之間存在同名的列,則必須使用表明來限制列的引用 內連線 自連線 內連線就是關聯的兩張或多張表中,根據關聯條件,顯示所有匹配的記錄,匹配不上的,不顯示 自連線,就是把一張表取兩個別名,當做兩張表來使用,自己和自己關聯。select columns list from table name...

thinkphp中的多表關聯查詢

在進行後端管理系統的程式設計的時候一般會使用框架來進行頁面的快速搭建,我最近使用比較多的就是thinkphp框架,thinkphp框架的應用其實就是把前端和後端進行分割管 理,前端使用者登入查詢系統放在thinkphp中的home資料夾中進行管理,後端管理系統放在thinkphp中的admin資料夾...

JPA多表關聯查詢

作用 就是實現使用乙個實體類物件操作或者查詢多個表的資料。回顧 配置多表聯絡查詢必須有兩個步驟 1.在實體類裡面建立表與表之間的關係。2.配置關聯關係,jpa使用註解配置 需求 指定oid查詢客戶的資訊 公司資訊 同時也查詢關聯的聯絡人資訊 配置步驟 通過客戶找聯絡人,所以再customer實體類配...