日韩性视频-久久久蜜桃-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 之字段中的【 数组】、【内嵌文档】的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 女人扒开腿让男人桶爽 | 久久久成人精品 | av中文网 | 三级理伦| 午夜激情在线 | 亚洲一区二区日韩 | 欧美特黄aaaaaa | 天天操夜夜添 | 女人被男人躁得好爽免费视频 | 日韩欧美黄色 | 久久久女人 | 久久久久久久久久成人 | 欧美做受xxxxxⅹ性视频 | 熟女人妇 成熟妇女系列视频 | 久久最新视频 | 成年视频在线观看 | ass精品国模裸体pics | 国产成人aaa | 中文字幕偷拍 | 日韩福利 | 曰批又黄又爽免费视频 | 火影忍者羞羞漫画 | 在线播放黄色网址 | 91成人在线观看喷潮动漫 | 国产麻豆免费视频 | 69亚洲乱人伦 | 午夜肉体高潮免费毛片 | 欧美 日韩 国产 亚洲 色 | 在线免费观看视频黄 | 日本不卡免费 | 国产一区二区视频在线观看免费 | 91av视频网 | 日韩精品久久一区 | 久久接色| 岛国大片在线免费观看 | 精品少妇一区二区三区免费观看 | 涩涩精品 | 国产精品羞羞答答在线观看 | 成人免费黄色大片 | 少妇丰满尤物大尺度写真 | 少妇综合网 | 婷婷在线免费观看 | 日韩中文字幕高清 | 蜜桃视频久久一区免费观看入口 | 国产夫妻自拍小视频 | 欧美色资源 | 国产网站免费观看 | 黄色一级片网站 | 欧美成人做爰大片免费看黄石 | 亚洲丁香 | 东北女人av| 国产一级久久 | 天天操天天草 | 亚洲春色在线观看 | 久久精品aⅴ无码中文字字幕重口 | 欧美一区二区三区网站 | bt天堂新版中文在线地址 | 亚洲精品国产免费 | 欧美久久久久久久久久久 | 欧美性插插 | 日剧再来一次第十集 | 国产精品中文久久久久久 | 深夜视频在线 | av免费网站在线观看 | 国产十区| 日韩精品一区二区三区在线视频 | 久久这里 | 日韩成人片 | 亚洲男人天堂2024 | 国产在线网站 | 日日夜夜添 | 成人你懂的 | 激情av网| 在线观看中文字幕一区二区 | 亚洲成人乱码 | 九九综合 | 亚洲精品三| 情不自禁电影 | 色欲久久久天天天精品综合网 | 上床视频在线观看 | 亚洲精品午夜国产va久久成人 | 成人免费网站黄 | 在线免费一区 | 香蕉精品在线 | 日韩精品成人一区二区在线 | 日本女优在线看 | 色网站免费在线观看 | 俄罗斯av在线 | 看一级黄色大片 | 精品黑人一区二区三区在线观看 | 91成人在线视频 | 九九啪| 中文字幕一区二区在线视频 | 国产99在线 | 亚洲 | 日韩亚洲视频在线观看 | 爱情岛论坛成人 | 少妇一晚三次一区二区三区 | 天堂网色 | 午夜免费网址 |