日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【知识小课堂】 mongodb 之字段中的【 数组】、【内嵌文档】

發布時間:2024/4/15 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【知识小课堂】 mongodb 之字段中的【 数组】、【内嵌文档】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、介紹

??????? MONGODB 的表結構 很靈活 。主要還是因為 字段中可以包含 【 數組】、【內嵌文檔】。

現在簡單介紹一下 字段中的【 數組】、【內嵌文檔】相關的一些操作


(為了方便理解,還是以表來理解mongodb 里的文檔)

數組1

1、數組

是一組數,可以是有序對象,也可以是無序對象
可以是不同數據類型,也可以相同數據類型

{“things”:[“pie”,3.14]}{name:”Joe”, Age:25, Status:”A”, Groups:[“news”,”sports”]}

2、文檔

文檔 可以做為的值,這樣的文檔就是內嵌文檔,這樣處理的目的是使用數據組織更為自然。

如果鍵多時,在每次訪問時只取需要的鍵,而非全部鍵都取。從而優化讀取效率。


{ name:{first:”John”,last:” Doe”}, Age:23, Address:{street:”nanjing 100#”,city:”Nanchang”,province:”Jiangxi”}, Tel:{tel:”0792-12133232”,mobile:”134232232323”,fax:”0792-243453433”} }

3、數組查詢

> db.food.find() { "_id" : 1, "fruit" : [ "apple", "banana", "peach" ] } { "_id" : 2, "fruit" : [ "apple", "kumquat", "orange" ] } { "_id" : 3, "fruit" : [ "cherry", "banana", "apple" ] }

3.1 查詢包含”apple”或者”banana”的文檔,則使用”$in”

> db.food.find({fruit:{$in:[" apple “,”banana”]}}) { "_id" : 1, "fruit" : [ "apple", "banana", "peach" ] } { "_id" : 2, "fruit" : [ "apple", "kumquat", "orange" ] } { "_id" : 3, "fruit" : [ "cherry", "banana", "apple" ] }

3.2 查詢既包含”apple”并且又包含”banana”的文檔

> db.food.find({fruit:{$all:["apple","banana"]}}) { "_id" : 1, "fruit" : [ "apple", "banana", "peach" ] } { "_id" : 3, "fruit" : [ "cherry", "banana", "apple" ] }

3.3 使用”$size“可以查詢指定長度的數組

我先插入一條新的記錄:

> db.food.insert({fruit:["Watermelon"]})

查詢只有一個水果列表的新添加記錄:


> db.food.find({fruit:{$size:1}},{_id:0,fruit:1}) { "fruit" : [ "Watermelon" ] }


查詢有3種水果的記錄:


> db.food.find({fruit:{$size:3}},{_id:0,fruit:1}) { "fruit" : [ "apple", "banana", "peach" ] } { "fruit" : [ "apple", "kumquat", "orange" ] } { "fruit" : [ "cherry", "banana", "apple" ] } >

3.4? 使用 ”$slice“ 指定 返回數據中的某幾條數據

原數據如下:

> db.blog.findOne() { "_id" : 1, "title" : "Hello World", "content" : "My first blog.", "comments" : [{"name" : "joe","content" : "test"},{"name" : "Zhang","content" : "so so .."},{"name" : "Li","content" : "very good"}] } >
一條博客里有多條點評。但我要指定返回兩條點評。(

$slice:[1,2] [1]開始,取2條 ,數組序號以0 開始。?


> db.blog.findOne({},{"comments":{$slice:[1,2]}}) { "_id" : 1, "title" : "Hello World", "content" : "My first blog.", "comments" : [{"name" : "Zhang","content" : "so so .."},{"name" : "Li","content" : "very good"}] } >

當然,你也還可以指定顯示特別指定要返回的點評記錄:


如:最后一條點評

> db.blog.findOne({},{"comments":{$slice:-1}}) {"_id" : 1,"title" : "Hello World","content" : "My first blog.","comments" : [{"name" : "Li","content" : "very good"}] }

前兩條:

> db.blog.findOne({},{"comments":{$slice:2}}) {"_id" : 1,"title" : "Hello World","content" : "My first blog.","comments" : [{"name" : "joe","content" : "test"},{"name" : "Zhang","content" : "so so .."}] } >

3.5 數組更新、添加

> db.food.insert({_id:4,fruit:['neo4j','mysql','redis']}) > db.food.find({_id:4}) { "_id" : 4, "fruit" : [ "neo4j", "mysql", "redis" ] } > db.food.update({_id:4},{“$pull”:{“fruit”:“neo4j”}}) #刪除指定值 > db.food.find({_id:4}) { "_id" : 4, "fruit" : [ "mysql", "redis" ] } > db.food.update({_id:4},{“$pop”:{“fruit”:1}}) #刪除最后一個值 > db.food.find({_id:4}) { "_id" : 4, "fruit" : [ "mysql" ] } > db.food.update({_id:4},{“$push”:{“fruit”:“mongo”}}) #添加一個值 > db.food.find({_id:4}) { "_id" : 4, "fruit" : [ "mysql", "mongo" ] } >

3.6 內嵌子文檔查詢

這個用得比較多,大家也很熟悉,就象對象引用是一樣的。多層間使用“." 但如果層次越來越多,在查詢,更新時。就會越來越不方便了。容易出錯。

內嵌子文檔查詢

> db.tst_3layer.find() { "_id" : 1, "po" : { "prod" : { "_id" : 1, "name" : "mongobook" }, "qty" : 1, "price" : 10, "amount" : 10 } } { "_id" : 2, "po" : { "prod" : { "_id" : 2, "name" : "oracle book" }, "qty" : 2, "price" : 230, "amount" : 460 } }> db.tst_3layer.find({"po.prod._id":1}) { "_id" : 1, "po" : { "prod" : { "_id" : 1, "name" : "mongobook" }, "qty" : 1, "price" : 10, "amount" : 10 } } >



總結

以上是生活随笔為你收集整理的【知识小课堂】 mongodb 之字段中的【 数组】、【内嵌文档】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 稀缺小u女呦精品呦 | 69人妻精品久久无人专区 | 亚洲片国产一区一级在线观看 | 日本xxxxxⅹxxxx69 | 日韩黄色a级片 | 91精品久久久久久久久久久 | 韩国精品在线观看 | 中文精品一区二区三区 | 久久亚洲综合网 | 在线免费观看网站入口在哪 | 久操国产在线 | 一区二区日韩精品 | 51国产在线 | 亚洲国产成人精品久久久 | 看免费一级片 | 日韩av三级在线观看 | 福利在线一区二区三区 | 欧美区一区二区 | 国产一区二区三区视频在线观看 | 国产精品乱码一区二区视频 | 国产另类综合 | 日日艹夜夜艹 | 中文毛片| 国产午夜福利一区二区 | 国产免费久久精品国产传媒 | 精品国产乱 | 国产精品一区二区三区四区在线观看 | 日日久 | 亚洲精品99久久久久中文字幕 | 亚洲精品久久久久久久蜜桃 | 久艹在线观看视频 | 免费人成年激情视频在线观看 | 无码一区二区 | 色999视频| 日韩av在线电影 | 欧美国产日韩在线观看成人 | 日韩欧美激情在线 | 亚洲色精品三区二区一区 | 男生和女生一起差差差很痛的视频 | 色先锋av资源 | 美女日批视频在线观看 | 日本裸体动漫 | 无遮挡边吃摸边吃奶边做 | 亚洲精品久久久久久动漫器材一区 | 亚洲码无人客一区二区三区 | 91黄色免费观看 | 国产成人精品无码播放 | 91鲁| 大色网小色网 | 2017日日夜夜 | 四季av日韩精品一区 | 九一在线观看免费高清视频 | 色婷婷亚洲一区二区三区 | 玖玖在线| 九一爱爱 | 日韩黄色精品视频 | 可以在线看黄的网站 | 日本aⅴ视频 | 久草欧美| 国产孕妇孕交大片孕 | 2019自拍偷拍| 1000亚洲裸体人体 | 永久黄网站色视频免费观看w | 欧美成人手机在线 | 完全免费av | 91精品看片 | 色多多视频在线 | 欧美一级看片 | 五月天亚洲色图 | av毛片大全 | 日本一本不卡 | 国模人体私拍xvideos | 一级特黄aa | 我们2018在线观看免费版高清 | 深夜福利网站在线观看 | 亚洲区小说区图片区qvod | 国产资源av | 一级片久久久久 | 91黄瓜视频 | 天天干在线观看 | 狠狠干很很操 | 污污免费视频 | 日本综合在线 | 日本h漫在线观看 | 欧美三日本三级少妇三 | 青青草原国产在线观看 | 91国产在线免费观看 | 狠狠干中文字幕 | 福利在线播放 | 国产成人av片 | 尤物网址在线观看 | 色婷婷色综合 | 日韩成人看片 | 国产一区二区女内射 | 亚洲在线免费 | 欧美大片一区 | 在线视频h | 91美女片黄在线观看 | 免费亚洲网站 |