前面看到mongodb文件的字段的值可以巢狀乙個文件,當然欄位的值也可以巢狀乙個陣列。不過巢狀陣列就比巢狀文件稍微複雜一些,因為陣列既可以是基本資料型別的陣列,也可以是文件型別的陣列。為了邏輯的順暢,先從巢狀基本資料型別的陣列開始,然後過度到巢狀文件的陣列。
基本資料的陣列:
1. 精確匹配 陣列中值完全一樣,值的順序也一致
// 樣例資料2. 匹配陣列單個元素 也就是資料中有乙個元素等於查詢的這個元素 就返回。// 精確查詢
db.students.find( )
// 匹配的只有乙個
// 下面兩個不會匹配 順序不一樣 個數不一樣
// 樣例資料3. 匹配陣列多個元素 也就是所有的查詢條件都可以在陣列中找到匹配的元素,可以是單個元素滿足所有條件,也可以是多個元素-每個元素只滿足乙個條件。// 匹配陣列乙個元素
db.students.find( )
// 返回的文件是
// 5
// 5
// 5
// 5
// 樣例資料4. 陣列單個元素匹配多個條件 注意和上面的區別 這裡指的是陣列中存在至少乙個元素滿足所有的條件。// 每個條件都有元素可以匹配
db.students.find( } )
// 返回的文件是
// 3 -1
// 1 1
// 1 1
// 1 1
// 樣例資料5. 建立索引// 至少乙個元素滿足所有條件
db.students.find( } } )
// 返回的文件是
// 1
// 1
// 1
// 樣例資料巢狀文件的陣列:// 對ratings欄位建立索引
db.survey.createindex( )
// 樣例資料1. 組合元素滿足查詢條件 對於每乙個條件都可以找到巢狀文件匹配,finished: [ 17, 3 ],
badges: [ "blue", "black" ],
points: [,]
},,
finished: [ 11, 25 ],
badges: [ "green" ],
points: [,]
},,
finished: [ 6 ],
badges: [ "blue", "red" ],
points: [,]
},,
finished: [ 5, 11 ],
badges: [ "red", "black" ],
points: [,]
},,
finished: [ 14, 6 ],
badges: [ "orange" ],
points: []},
,finished: [ 18, 12 ],
badges: [ "black", "blue" ],
points: [,]
}
//2. 單個文件滿足多個查詢條件 有兩種情況 一種是乙個字段多個限制 一種是多個字段限制db.users.find( } )//,
"finished" : [ 6 ],
"badges" : [ "blue", "red" ],
"points" : [ , ]// 55 81
}
// 第一種情況db.users.find( } } } )
// 返回
, "finished" : [
11.0,
25.0
],"badges" : [
"green"
],"points" : [
, ]},
"finished" : [
18.0,
12.0
],"badges" : [
"black",
"blue"
],"points" : [ , ]
}
// 第二種情況3. 陣列要包含某幾類文件 也就有多個$elemmatchdb.users.find( , bonus: 20 } } } )
// 返回
, "finished" : [
6.0],
"badges" : [
"blue",
"red"
],"points" : [ , ]
}
// 意思就是說既要有文件第乙個 也要有文件滿足第二個db.users.find( , bonus: 20 } } },
, bonus: 8 } } }
]} )
// 返回
, "finished" : [
6.0],
"badges" : [
"blue",
"red"
],"points" : [ , ]
}
// 也可以這麼寫 和上面的寫法等價db.users.find( , bonus: 20 } },
, bonus: 8 } }
]}} )
// 返回
, "finished" : [
6.0],
"badges" : [
"blue",
"red"
],"points" : [ , ]
}
陣列 基礎知識
陣列是相同型別的變數的有序集合 int a 5 陣列示意圖 陣列包含5個int型別的資料 陣列在一片連續的記憶體空間中儲存元素。陣列元素的個數可以顯式或隱式指定。對於a,a 2 a 3 a 4 都為0 對於b,元素個數為2。在定義陣列並初始化的時候,給陣列的前幾位初始化設定相應的值之後,如果沒有給後...
陣列基礎知識
陣列 1 定義 儲存相同型別的一組資料 格式 陣列型別 陣列名 new 陣列型別 陣列長度 基本要素 識別符號 陣列元素 元素下標 從0開始 元素型別 初始化陣列 方式 1 int nums new int 3 方式 2 int nums 方式 3 int nums new int nums 0 1...
陣列基礎知識
陣列的宣告 陣列是相同型別的資料按順序組成的一種復合資料型別。通過陣列名加陣列下標,來使用陣列中的資料。下標從 0 開始排序。宣告一維陣列 陣列元素型別 陣列名 宣告二維陣列 陣列元素型別 陣列名 陣列的例項化 陣列的初始化 靜態初始化 格式一 資料型別 陣列名 格式二 資料型別 陣列名 new i...