mongodb數據庫基礎知識之連表查詢

這篇文章主要給大家介紹了關於mongodb數據庫基礎知識之連表查詢的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用mongodb具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧

前言

在做自己的項目時,因爲剛開始接觸mongodb非關係型數據庫以及關係型數據庫的影響還是留在腦中,總會想着進行一個連表查詢,然後看官網和資料學習了下,還有那個查詢時使用正則來匹配,在這裏做個記錄

1.mongodb正則匹配

/* 使用$regex字段匹配 */
name: {$regex: 'aa', $options: 'i'};
或者:
name: {$regex: /aa/, $options: 'i'};
或者:
name: {$regex: /aa/i};
/* 直接使用表達式 */
name: {/aa/i}
/* 使用$in來匹配,這個字段必須是一個數組 */
name: {$in: [/aa/]}

2.連表查詢

使用$lookup來進行連表查詢

/* aggregate聚合操作,$unwind將數組拆分成單個元素
 * $group 分組依據
 * $sum 統計
 * $project 將返回值進行篩選,是否返回篩選完後的某個字段
 * $match 匹配條件
 * */
usingRecord.aggregate([
  {
   $lookup: {
    from: 'resources', /* 要連接的表名 */
    localField: 'resource_id', /* 當前表對應的字段 */
    foreignField: '_id', /* 要連接的表的字段 */
    as: 'resourceInfo' /* 查詢結果中顯示的字段名 */
   },
  },
  {
   $match: {
    'user_id': user_id
   }
  },
  {
   $unwind: '$resourceInfo'
  },
  {
   $sort: {
    _id: -1
   }
  }
 ])

3.小結

mongodb數據庫是非關係型、文檔型數據庫,將有關聯的數據存儲在一份文檔中就能夠減少進行表與表之間的關聯查詢
自己先在網上找資料學習後,然後在學習慕課網上的視頻時,就有很大的感觸,目前的話還是有一些迷惑,對於數據的插入我會找到更好的方法來實現

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對神馬文庫的支持。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章