MongoDB 聚合查詢?cè)斀?/h1>
更新時(shí)間:2022年12月26日 10:27:43 作者:程序員翔仔
這篇文章主要介紹了MongoDB 聚合查詢?cè)斀獾南嚓P(guān)資料,需要的朋友可以參考下
聚合管道
聚合框架是 MongoDB 中的一組分析工具,可以對(duì)一個(gè)或多個(gè)集合中的文檔進(jìn)行分析。
MongoDB 的聚合框架基于管道的概念:首先從集合中獲取到輸入,然后將輸入的文檔傳遞到一個(gè)或多個(gè)階段,每個(gè)階段都將之前階段輸出的內(nèi)容作為輸入,最終得到一個(gè)聚合結(jié)果作為輸出。

上面的圖是一個(gè)比較寬泛的管道流程圖。這里展示一個(gè) MongoDB 聚合語(yǔ)句映射到管道之后的情況:

在這里可以看得出,aggregate([{}, {}])
是一個(gè)聚合語(yǔ)句,在函數(shù)的數(shù)組中,每一個(gè)對(duì)象都是一個(gè)階段,$match
應(yīng)該就是一個(gè)篩選文檔的階段,$group
應(yīng)該就是一個(gè)分組匯總的階段。
管道階段
使用聚合框架最重要的就是熟悉操作的語(yǔ)法,以及將這些語(yǔ)法構(gòu)建成管道當(dāng)中的階段。
在 MongoDB 聚合框架中,每一個(gè)階段都必須要規(guī)定一個(gè)特定的階段運(yùn)算符,這些階段運(yùn)算符表明了階段的執(zhí)行規(guī)則,可以到 官方文檔 上查看更多、更詳細(xì)的內(nèi)容。
常見操作
最常見的操作應(yīng)該是能與普通查詢語(yǔ)句對(duì)應(yīng)上的操作,如查詢、投影、排序、跳過、限制等等。雖然這些在一個(gè) find()
語(yǔ)句中就能實(shí)現(xiàn)。
最常使用的操作就是查詢,也可以說是篩選、過濾,在聚合框架中使用 $match
來表明這是一個(gè)篩選文檔的階段。如下是其使用語(yǔ)法:
{ $match: { <query> } }
第二個(gè)則是投影,這個(gè)階段可以修改輸入文檔的結(jié)構(gòu),通常是重命名、增加、刪除屬性,也可以通過表達(dá)式創(chuàng)建計(jì)算結(jié)果以及嵌套文檔。如下是其使用語(yǔ)法:
// <field>: <1 or true>
// <field>: <0 or false>
// <field>: <expression>
{ $project: { <specification(s)> } }
排序、跳過、限制都比較容易理解,實(shí)際上可以與 find()
結(jié)果的游標(biāo)支持的函數(shù)做聯(lián)系。如下是其使用語(yǔ)法:
// 排序
{ $sort: { <field1>: <sort order>, <field2>: <sort order> ... } }
// 跳過
{ $skip: <positive 64-bit integer> }
// 限制
{ $limit: <positive 64-bit integer> }
上述 5 個(gè)階段是最常用的階段,在使用時(shí)需要注重它們的效率,一般會(huì)使用這樣的順序去構(gòu)建管道:
- 通過篩選語(yǔ)句過濾指定集合,得到符合要求的文檔列表;
- 如果排序非常重要,這一個(gè)階段需要在過濾文檔之后;
- 如果需要做分頁(yè)功能,應(yīng)該是先執(zhí)行跳過的階段,然后再到限制的階段;
- 最后,執(zhí)行投影階段(進(jìn)入投影階段的文檔應(yīng)該盡量少)。
更多操作 - 投影
投影階段一個(gè)比較大的作用就是,限制下一步的文檔字段數(shù)量,也就是刪除屬性,如下是使用方式:
// 不返回 _id 字段
{ $project: { _id: 0 } }
// 不返回指定的 field 字段
{ $project: { <field>: 0 } }
刪除屬性是黑名單的功能,投影階段也支持白名單的功能,即返回列表內(nèi)的字段,如下是使用方式:
// 返回指定的 field 字段
{ $project: { <field>: 1 } }
前兩個(gè)功能是比較好理解的,但投影階段所能做的遠(yuǎn)不止如此,還有很多其他的功能(投影階段支持大部分條件組),這里做個(gè)簡(jiǎn)單舉例:
// 將 author 嵌套文檔下 last 屬性賦值給 lastName 屬性
{ $project: { lastName: "$author.last" } }
// 上述的功能里,對(duì)于嵌套文檔和內(nèi)嵌數(shù)組返回的結(jié)果是不一樣的,數(shù)組會(huì)繼承下來
// 投影支持類似于三元運(yùn)算的表達(dá)式
{ $project: { lastName: {
$cond: {
if: { $eq: [ "", "$author.last" ] },
then: "$$REMOVE",
else: "$author.last",
}
} } }
更多操作 - 展開
在處理數(shù)組時(shí),一個(gè)比較常見的操作是為數(shù)組中的每一個(gè)元素形成一個(gè)輸出文檔。
一個(gè)實(shí)際的例子就是,一件衣服在庫(kù)存中有 S、M、L 三個(gè)尺寸,而這三個(gè)尺寸會(huì)存儲(chǔ)在同一個(gè)數(shù)組字段當(dāng)中,當(dāng)我們聚合時(shí)想要將這一條文檔展開成三個(gè)文檔,一個(gè)尺寸對(duì)應(yīng)一個(gè)文檔。
// 原始文檔
{
"clothesId": "123456",
"sizeList": ["S", "M", "L"]
}
// 展開后的文檔
{
"clothesId": "123456",
"sizeList": "S"
}
{
"clothesId": "123456",
"sizeList": "M"
}
{
"clothesId": "123456",
"sizeList": "L"
}
聚合過程中,展開階段的語(yǔ)法是:
{ $unwind: <field path> }
// 上述衣服的例子中,可以用以下語(yǔ)句來展開
{ $unwind: "$sizeList" }
更多操作 - 分組
分組是聚合管道中舉足輕重的一個(gè)階段,這里的分組可以看作是 SQL 的 GOURP BY
語(yǔ)句,其能為聚合功能帶來非常大的可能性。
分組階段使用了 $group
運(yùn)算符,支持使用一個(gè)鍵或多個(gè)鍵將輸入的文檔進(jìn)行分組,其語(yǔ)法如下:
{
$group: {
// 分組的標(biāo)識(shí)
_id: <expression>,
<field1>: { <accumulator1> : <expression1> },
...
}
}
其中 _id
是必須的,可以簡(jiǎn)單指定分組的鍵,也可以使用條件組做處理后生成自定義鍵。
可選的 <field>
是分組后需要展示的鍵,并且可以指定條件組來決定它們的值是什么。
尤其是,MongoDB 提供了累加器可以實(shí)現(xiàn)復(fù)雜的功能,如求和、平均值、最大值、最小值等等。
這里有個(gè)對(duì)集合求和的例子,也是最簡(jiǎn)單的使用:
{
$group: {
// 對(duì)類型進(jìn)行分組
_id: "type",
// 這里是求和,一個(gè)文檔記作 1 個(gè),即對(duì)同類型的文檔進(jìn)行計(jì)數(shù)
count: { $sum: 1 },
}
}
更多操作 - 入庫(kù)
顧名思義,入庫(kù)需要作為管道中最后的階段,將管道生成的文檔寫入集合中。
聚合框架提供了 $out
和 $merge
兩個(gè)運(yùn)算符標(biāo)識(shí)入庫(kù)階段,其中 $merge
是在 4.2 版本中引入的。這兩個(gè)操作符的語(yǔ)法如下:
// 指定數(shù)據(jù)庫(kù)和集合,會(huì)直接覆蓋
{ $out: { db: "<output-db>", coll: "<output-collection>" } }
// 配置更加豐富
{ $merge: {
// 指定數(shù)據(jù)庫(kù)和集合
into: <collection> -or- { db: <db>, coll: <collection> },
// 確定唯一標(biāo)識(shí)與集合中做匹配
on: <identifier field> -or- [ <identifier field1>, ...], // Optional
// 設(shè)定變量
let: <variables>, // Optional
// 如果標(biāo)識(shí)存在時(shí)處理文檔的方式
whenMatched: <replace|keepExisting|merge|fail|pipeline>, // Optional
// 如果標(biāo)識(shí)不存在時(shí)處理文檔的方式
whenNotMatched: <insert|discard|fail> // Optional
} }
如果可以的話,建議使用 $merge
作為寫入集合的首選方式,其功能更多。
當(dāng)然,其真正的優(yōu)勢(shì)是,可以按照按需生成的物化視圖(materialized view),在管道運(yùn)行的階段,輸出到集合的內(nèi)容會(huì)進(jìn)行增量更新。
條件組累加器
在一些階段操作中,MongoDB 支持使用累加器來增強(qiáng)聚合功能,這里說的累加器泛指求和、平均值、最大值、最小值等功能的操作符。
算術(shù)運(yùn)算
這里的算術(shù)運(yùn)算不是統(tǒng)稱的四則運(yùn)算,指的是與數(shù)學(xué)相關(guān)的運(yùn)算,如平均值、求和等。
$avg
累加器用于計(jì)算平均值,通過是直接指定一個(gè)鍵名即可,使用 { $avg: "$keyName" }
這樣的語(yǔ)法。
$sum
累加器用于計(jì)算指定鍵的和,也是直接指定一個(gè)鍵名即可,使用 { $sum: "$keyName" }
這樣的語(yǔ)法。
最值運(yùn)算
累加器支持的最值包括這些:最小值、最大值、最大的 n 個(gè)值。
最小值和最大值的理解都比較容易,使用也比較容易。最小值使用了 { $min: "$keyName" }
這樣的語(yǔ)法,最大值使用了 { $max: "$keyName" }
這樣的語(yǔ)法。
最大的 n 個(gè)值是在 5.2 版本新增的累加器,其作用是通過指定輸入的鍵,得到這些鍵值中排序后最大的 n 個(gè)值,其語(yǔ)法如下:
{
$maxN: {
// 指定鍵名 input: "$score"
input: <expression>,
// 指定數(shù)量 n: 3
n: <expression>
}
}
數(shù)組提取
這里的數(shù)組提取指的是提取數(shù)組中的某個(gè)元素,現(xiàn)在能支持到的就是提取出數(shù)組中的前 n 個(gè)元素、后 n 個(gè)元素。
在這里可以使用 $first
、$firstN
、$last
、$lastN
這樣的運(yùn)算符,它們的語(yǔ)法分別如下:
{ $first: <expression> }
{
$firstN: {
input: <expression>,
n: <expression>
}
}
{ $last: <expression> }
{
$lastN: {
input: <expression>,
n: <expression>
}
}
其他運(yùn)算
除了上述的累加器,聚合框架還有非常多其他的累加器,這里簡(jiǎn)單列一下:
$accumulator
: 返回自定義累加器函數(shù)的結(jié)果$addToSet
: 返回一個(gè)無重復(fù)值的數(shù)組$bottom
: 返回指定排序規(guī)則后最后 1 個(gè)元素$bottomN
: 返回指定排序規(guī)則后最后 n 個(gè)元素$count
: 返回文檔的計(jì)數(shù)$mergeObjects
: 返回合并多個(gè)對(duì)象之后的結(jié)果$push
: 返回一個(gè)可以有重復(fù)值的數(shù)組$stdDevPop
: 返回輸入值的總體標(biāo)準(zhǔn)差$stdDevSamp
: 返回輸入值的樣本標(biāo)準(zhǔn)差
這些累加器都有各自的用法,使用得當(dāng)可實(shí)現(xiàn)非常強(qiáng)大的數(shù)據(jù)分析功能,完整的內(nèi)容可以到 官方文檔 上查看。
到此這篇關(guān)于MongoDB 聚合查詢?cè)斀獾奈恼戮徒榻B到這了,更多相關(guān)MongoDB聚合查詢內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
-
MongoDB與MySQL常用操作語(yǔ)句對(duì)照
這篇文章主要介紹了MongoDB與MySQL常用操作語(yǔ)句對(duì)照,本文整合了兩篇博文,相信最常用的操作都收錄在本文了,需要的朋友可以參考下 2015-05-05
-
MongoDB增刪查改操作示例【基于JavaScript Shell】
這篇文章主要介紹了MongoDB增刪查改操作,結(jié)合實(shí)例形式分析了MongoDB數(shù)據(jù)庫(kù)基于JavaScript Shell的基本增刪查改操作技巧與使用注意事項(xiàng),需要的朋友可以參考下 2019-07-07
-
關(guān)于MongoTemplate通過id查詢?yōu)閚ull的問題
這篇文章主要介紹了關(guān)于MongoTemplate通過id查詢?yōu)閚ull的問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下 2021-01-01
最新評(píng)論
聚合管道
聚合框架是 MongoDB 中的一組分析工具,可以對(duì)一個(gè)或多個(gè)集合中的文檔進(jìn)行分析。
MongoDB 的聚合框架基于管道的概念:首先從集合中獲取到輸入,然后將輸入的文檔傳遞到一個(gè)或多個(gè)階段,每個(gè)階段都將之前階段輸出的內(nèi)容作為輸入,最終得到一個(gè)聚合結(jié)果作為輸出。
上面的圖是一個(gè)比較寬泛的管道流程圖。這里展示一個(gè) MongoDB 聚合語(yǔ)句映射到管道之后的情況:
在這里可以看得出,aggregate([{}, {}])
是一個(gè)聚合語(yǔ)句,在函數(shù)的數(shù)組中,每一個(gè)對(duì)象都是一個(gè)階段,$match
應(yīng)該就是一個(gè)篩選文檔的階段,$group
應(yīng)該就是一個(gè)分組匯總的階段。
管道階段
使用聚合框架最重要的就是熟悉操作的語(yǔ)法,以及將這些語(yǔ)法構(gòu)建成管道當(dāng)中的階段。
在 MongoDB 聚合框架中,每一個(gè)階段都必須要規(guī)定一個(gè)特定的階段運(yùn)算符,這些階段運(yùn)算符表明了階段的執(zhí)行規(guī)則,可以到 官方文檔 上查看更多、更詳細(xì)的內(nèi)容。
常見操作
最常見的操作應(yīng)該是能與普通查詢語(yǔ)句對(duì)應(yīng)上的操作,如查詢、投影、排序、跳過、限制等等。雖然這些在一個(gè) find()
語(yǔ)句中就能實(shí)現(xiàn)。
最常使用的操作就是查詢,也可以說是篩選、過濾,在聚合框架中使用 $match
來表明這是一個(gè)篩選文檔的階段。如下是其使用語(yǔ)法:
{ $match: { <query> } }
第二個(gè)則是投影,這個(gè)階段可以修改輸入文檔的結(jié)構(gòu),通常是重命名、增加、刪除屬性,也可以通過表達(dá)式創(chuàng)建計(jì)算結(jié)果以及嵌套文檔。如下是其使用語(yǔ)法:
// <field>: <1 or true> // <field>: <0 or false> // <field>: <expression> { $project: { <specification(s)> } }
排序、跳過、限制都比較容易理解,實(shí)際上可以與 find()
結(jié)果的游標(biāo)支持的函數(shù)做聯(lián)系。如下是其使用語(yǔ)法:
// 排序 { $sort: { <field1>: <sort order>, <field2>: <sort order> ... } } // 跳過 { $skip: <positive 64-bit integer> } // 限制 { $limit: <positive 64-bit integer> }
上述 5 個(gè)階段是最常用的階段,在使用時(shí)需要注重它們的效率,一般會(huì)使用這樣的順序去構(gòu)建管道:
- 通過篩選語(yǔ)句過濾指定集合,得到符合要求的文檔列表;
- 如果排序非常重要,這一個(gè)階段需要在過濾文檔之后;
- 如果需要做分頁(yè)功能,應(yīng)該是先執(zhí)行跳過的階段,然后再到限制的階段;
- 最后,執(zhí)行投影階段(進(jìn)入投影階段的文檔應(yīng)該盡量少)。
更多操作 - 投影
投影階段一個(gè)比較大的作用就是,限制下一步的文檔字段數(shù)量,也就是刪除屬性,如下是使用方式:
// 不返回 _id 字段 { $project: { _id: 0 } } // 不返回指定的 field 字段 { $project: { <field>: 0 } }
刪除屬性是黑名單的功能,投影階段也支持白名單的功能,即返回列表內(nèi)的字段,如下是使用方式:
// 返回指定的 field 字段 { $project: { <field>: 1 } }
前兩個(gè)功能是比較好理解的,但投影階段所能做的遠(yuǎn)不止如此,還有很多其他的功能(投影階段支持大部分條件組),這里做個(gè)簡(jiǎn)單舉例:
// 將 author 嵌套文檔下 last 屬性賦值給 lastName 屬性 { $project: { lastName: "$author.last" } } // 上述的功能里,對(duì)于嵌套文檔和內(nèi)嵌數(shù)組返回的結(jié)果是不一樣的,數(shù)組會(huì)繼承下來 // 投影支持類似于三元運(yùn)算的表達(dá)式 { $project: { lastName: { $cond: { if: { $eq: [ "", "$author.last" ] }, then: "$$REMOVE", else: "$author.last", } } } }
更多操作 - 展開
在處理數(shù)組時(shí),一個(gè)比較常見的操作是為數(shù)組中的每一個(gè)元素形成一個(gè)輸出文檔。
一個(gè)實(shí)際的例子就是,一件衣服在庫(kù)存中有 S、M、L 三個(gè)尺寸,而這三個(gè)尺寸會(huì)存儲(chǔ)在同一個(gè)數(shù)組字段當(dāng)中,當(dāng)我們聚合時(shí)想要將這一條文檔展開成三個(gè)文檔,一個(gè)尺寸對(duì)應(yīng)一個(gè)文檔。
// 原始文檔 { "clothesId": "123456", "sizeList": ["S", "M", "L"] } // 展開后的文檔 { "clothesId": "123456", "sizeList": "S" } { "clothesId": "123456", "sizeList": "M" } { "clothesId": "123456", "sizeList": "L" }
聚合過程中,展開階段的語(yǔ)法是:
{ $unwind: <field path> } // 上述衣服的例子中,可以用以下語(yǔ)句來展開 { $unwind: "$sizeList" }
更多操作 - 分組
分組是聚合管道中舉足輕重的一個(gè)階段,這里的分組可以看作是 SQL 的 GOURP BY
語(yǔ)句,其能為聚合功能帶來非常大的可能性。
分組階段使用了 $group
運(yùn)算符,支持使用一個(gè)鍵或多個(gè)鍵將輸入的文檔進(jìn)行分組,其語(yǔ)法如下:
{ $group: { // 分組的標(biāo)識(shí) _id: <expression>, <field1>: { <accumulator1> : <expression1> }, ... } }
其中 _id
是必須的,可以簡(jiǎn)單指定分組的鍵,也可以使用條件組做處理后生成自定義鍵。
可選的 <field>
是分組后需要展示的鍵,并且可以指定條件組來決定它們的值是什么。
尤其是,MongoDB 提供了累加器可以實(shí)現(xiàn)復(fù)雜的功能,如求和、平均值、最大值、最小值等等。
這里有個(gè)對(duì)集合求和的例子,也是最簡(jiǎn)單的使用:
{ $group: { // 對(duì)類型進(jìn)行分組 _id: "type", // 這里是求和,一個(gè)文檔記作 1 個(gè),即對(duì)同類型的文檔進(jìn)行計(jì)數(shù) count: { $sum: 1 }, } }
更多操作 - 入庫(kù)
顧名思義,入庫(kù)需要作為管道中最后的階段,將管道生成的文檔寫入集合中。
聚合框架提供了 $out
和 $merge
兩個(gè)運(yùn)算符標(biāo)識(shí)入庫(kù)階段,其中 $merge
是在 4.2 版本中引入的。這兩個(gè)操作符的語(yǔ)法如下:
// 指定數(shù)據(jù)庫(kù)和集合,會(huì)直接覆蓋 { $out: { db: "<output-db>", coll: "<output-collection>" } } // 配置更加豐富 { $merge: { // 指定數(shù)據(jù)庫(kù)和集合 into: <collection> -or- { db: <db>, coll: <collection> }, // 確定唯一標(biāo)識(shí)與集合中做匹配 on: <identifier field> -or- [ <identifier field1>, ...], // Optional // 設(shè)定變量 let: <variables>, // Optional // 如果標(biāo)識(shí)存在時(shí)處理文檔的方式 whenMatched: <replace|keepExisting|merge|fail|pipeline>, // Optional // 如果標(biāo)識(shí)不存在時(shí)處理文檔的方式 whenNotMatched: <insert|discard|fail> // Optional } }
如果可以的話,建議使用 $merge
作為寫入集合的首選方式,其功能更多。
當(dāng)然,其真正的優(yōu)勢(shì)是,可以按照按需生成的物化視圖(materialized view),在管道運(yùn)行的階段,輸出到集合的內(nèi)容會(huì)進(jìn)行增量更新。
條件組累加器
在一些階段操作中,MongoDB 支持使用累加器來增強(qiáng)聚合功能,這里說的累加器泛指求和、平均值、最大值、最小值等功能的操作符。
算術(shù)運(yùn)算
這里的算術(shù)運(yùn)算不是統(tǒng)稱的四則運(yùn)算,指的是與數(shù)學(xué)相關(guān)的運(yùn)算,如平均值、求和等。
$avg
累加器用于計(jì)算平均值,通過是直接指定一個(gè)鍵名即可,使用 { $avg: "$keyName" }
這樣的語(yǔ)法。
$sum
累加器用于計(jì)算指定鍵的和,也是直接指定一個(gè)鍵名即可,使用 { $sum: "$keyName" }
這樣的語(yǔ)法。
最值運(yùn)算
累加器支持的最值包括這些:最小值、最大值、最大的 n 個(gè)值。
最小值和最大值的理解都比較容易,使用也比較容易。最小值使用了 { $min: "$keyName" }
這樣的語(yǔ)法,最大值使用了 { $max: "$keyName" }
這樣的語(yǔ)法。
最大的 n 個(gè)值是在 5.2 版本新增的累加器,其作用是通過指定輸入的鍵,得到這些鍵值中排序后最大的 n 個(gè)值,其語(yǔ)法如下:
{ $maxN: { // 指定鍵名 input: "$score" input: <expression>, // 指定數(shù)量 n: 3 n: <expression> } }
數(shù)組提取
這里的數(shù)組提取指的是提取數(shù)組中的某個(gè)元素,現(xiàn)在能支持到的就是提取出數(shù)組中的前 n 個(gè)元素、后 n 個(gè)元素。
在這里可以使用 $first
、$firstN
、$last
、$lastN
這樣的運(yùn)算符,它們的語(yǔ)法分別如下:
{ $first: <expression> } { $firstN: { input: <expression>, n: <expression> } } { $last: <expression> } { $lastN: { input: <expression>, n: <expression> } }
其他運(yùn)算
除了上述的累加器,聚合框架還有非常多其他的累加器,這里簡(jiǎn)單列一下:
$accumulator
: 返回自定義累加器函數(shù)的結(jié)果$addToSet
: 返回一個(gè)無重復(fù)值的數(shù)組$bottom
: 返回指定排序規(guī)則后最后 1 個(gè)元素$bottomN
: 返回指定排序規(guī)則后最后 n 個(gè)元素$count
: 返回文檔的計(jì)數(shù)$mergeObjects
: 返回合并多個(gè)對(duì)象之后的結(jié)果$push
: 返回一個(gè)可以有重復(fù)值的數(shù)組$stdDevPop
: 返回輸入值的總體標(biāo)準(zhǔn)差$stdDevSamp
: 返回輸入值的樣本標(biāo)準(zhǔn)差
這些累加器都有各自的用法,使用得當(dāng)可實(shí)現(xiàn)非常強(qiáng)大的數(shù)據(jù)分析功能,完整的內(nèi)容可以到 官方文檔 上查看。
到此這篇關(guān)于MongoDB 聚合查詢?cè)斀獾奈恼戮徒榻B到這了,更多相關(guān)MongoDB聚合查詢內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MongoDB與MySQL常用操作語(yǔ)句對(duì)照
這篇文章主要介紹了MongoDB與MySQL常用操作語(yǔ)句對(duì)照,本文整合了兩篇博文,相信最常用的操作都收錄在本文了,需要的朋友可以參考下2015-05-05MongoDB增刪查改操作示例【基于JavaScript Shell】
這篇文章主要介紹了MongoDB增刪查改操作,結(jié)合實(shí)例形式分析了MongoDB數(shù)據(jù)庫(kù)基于JavaScript Shell的基本增刪查改操作技巧與使用注意事項(xiàng),需要的朋友可以參考下2019-07-07關(guān)于MongoTemplate通過id查詢?yōu)閚ull的問題
這篇文章主要介紹了關(guān)于MongoTemplate通過id查詢?yōu)閚ull的問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01