MongoDB多表查询各属性详解
生活随笔
收集整理的這篇文章主要介紹了
MongoDB多表查询各属性详解
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
MongoDB數據庫是不需要建表操作的
1、插入數據:
- ????????db.集合名.insert({JSON類型})即可創建并且插入數據
2、多表查詢:
- ????????db.集合名.aggregate([對應的方法])即可實現多表查詢
3、可能用到的函數:
- ????????$set:{}設置值。
- ????????$toString:將后面類型轉化為字符串類型
- ????????$lookUp:查詢語句
- ????????$match:where語句
- ????????$skip:分頁,第幾頁
- ????????$limit:每頁顯示多少文字
- ????????$skip:分頁,第幾頁
- ????????$match:where語句
- ????????$lookUp:查詢語句
- ????????$toString:將后面類型轉化為字符串類型
接下來主要詳解as屬性值
-- 先建立表1 db.cus.insert([ {"_id": 1,"item": "almonds","price": 12,"quantity": 2}, {"_id": 2, "item": "pecans", "price": 20, "quantity": 1} ]) -- 再建立表二 db.inv.insert([{ "_id" : 1, "sku" : "almonds", description: "product 1", "instock" : 120 },{ "_id" : 2, "sku" : "bread", description: "product 2", "instock" : 80 },{ "_id" : 3, "sku" : "cashews", description: "product 3", "instock" : 60 },{ "_id" : 4, "sku" : "pecans", description: "product 4", "instock" : 70 },{ "_id" : 5, "sku" : "almonds", description: "product 5", "instock" : 300 } ]) --開始執行多表查詢 db.cus.aggregate([ --表示cus為主表{$lookup: --將兩張表鏈接起來,相當于join語句{from: "inv", --與哪個表鏈接localField: "item",--cus主表的item字段與另一個表sku去匹配匹配foreignField: "sku",-- inv副表的sku字段與主表item字段匹配才顯示as: "inventory_docs" -- 查詢出來的滿足條件的結果名稱}} ])返回結果:首先會將主表的所有數據都返回,然后滿足條件的存放于as起的別名中,最終返回一個集合類型,Java后臺可用List<HashMap>接收,如果沒有滿足條件的就會返回null
最終的返回結果為:
展開inventory_docs對應的集合:
1、_id=1的返回結果為:
2、_id=2的返回結果為:
?
?
總結
以上是生活随笔為你收集整理的MongoDB多表查询各属性详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GAMS-01 GAMS与MATLAB间
- 下一篇: Sping容器