前言
在做自己的項目時,因為剛開始接觸mongodb非關系型數據庫以及關系型數據庫的影響還是留在腦中,總會想著進行一個連表查詢,然后看官網和資料學習了下,還有那個查詢時使用正則來匹配,在這里做個記錄
1.mongodb正則匹配
1
2
3
4
5
6
7
8
9
10
|
/* 使用$regex字段匹配 */ name : {$regex: 'aa' , $options: 'i' }; 或者: name : {$regex: /aa/, $options: 'i' }; 或者: name : {$regex: /aa/i}; /* 直接使用表達式 */ name : {/aa/i} /* 使用$ in 來匹配,這個字段必須是一個數組 */ name : {$ in : [/aa/]} |
2.連表查詢
使用$lookup來進行連表查詢
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
/* 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數據庫是非關系型、文檔型數據庫,將有關聯的數據存儲在一份文檔中就能夠減少進行表與表之間的關聯查詢
自己先在網上找資料學習后,然后在學習慕課網上的視頻時,就有很大的感觸,目前的話還是有一些迷惑,對于數據的插入我會找到更好的方法來實現
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對服務器之家的支持。
原文鏈接:https://segmentfault.com/a/1190000019374517