MongoDB常用命令指南
What is MongoDB?
MongoDB 是一個(gè)文檔數(shù)據(jù)庫,具有您所需的可擴(kuò)展性和靈活性以及所需的查詢和索引。
What is a Database?
數(shù)據(jù)庫保存一組集合。數(shù)據(jù)庫通常有一個(gè)單獨(dú)的文件系統(tǒng)目錄來保存其數(shù)據(jù)。每個(gè)數(shù)據(jù)庫在文件系統(tǒng)上都有自己的文件集。通常,您將數(shù)據(jù)庫與一個(gè)應(yīng)用程序相關(guān)聯(lián)。
What is a Collection?
集合是一組文檔。如果文檔是關(guān)系數(shù)據(jù)庫表中行的 MongoDB 模擬,那么集合就是表的模擬。
What is a Document?
MongoDB中的一條記錄就是一個(gè)文檔,它是由字段和值對(duì)組成的數(shù)據(jù)結(jié)構(gòu)。MongoDB 文檔類似于 JSON 對(duì)象。字段的值可以包括其他文檔、數(shù)組和文檔數(shù)組。
What is a Field?
文檔具有動(dòng)態(tài)模式。動(dòng)態(tài)模式允許同一集合中的文檔具有不同的字段集,并且公共字段具有不同的字段名稱。
What is a Primary Key?
在 MongoDB 中,存儲(chǔ)在集合中的每個(gè)文檔都需要一個(gè)唯一的 _id 字段作為主鍵。如果插入的文檔省略 _id 字段,MongoDB 驅(qū)動(dòng)程序會(huì)自動(dòng)為 _id 字段生成一個(gè) ObjectId。
Why use NoSQL?
NoSQL 數(shù)據(jù)庫的構(gòu)建允許在沒有預(yù)定義模式的情況下插入數(shù)據(jù)。這使得 NoSQL 數(shù)據(jù)庫成為存儲(chǔ)和處理非結(jié)構(gòu)化數(shù)據(jù)的理想選擇。
Why use MongoDB?
MongoDB 是一個(gè)文檔數(shù)據(jù)庫,這意味著它將數(shù)據(jù)存儲(chǔ)在類似 JSON 的文檔中。我們相信這是思考數(shù)據(jù)的最自然的方式,并且比傳統(tǒng)的行/列模型更具表現(xiàn)力和更強(qiáng)大。
(更|多優(yōu)質(zhì)內(nèi)|容:java567 點(diǎn) c0m)
MongoDB Shell 命令????
Show Database
?show dbs
此命令將顯示 MongoDB 服務(wù)器中的所有數(shù)據(jù)庫。
Use Database
?use <database_name>
該命令將切換到您要使用的數(shù)據(jù)庫。
Show Collections
?show collections
此命令將顯示您正在使用的數(shù)據(jù)庫中的所有集合。
Drop Database
?db.dropDatabase()
此命令將刪除您正在使用的數(shù)據(jù)庫。
Create Collection
?db.createCollection("<collection_name>")
此命令將在您正在使用的數(shù)據(jù)庫中創(chuàng)建一個(gè)集合。
Insert a Document
?db.<collection_name>.insertOne({
? ? ?<key>: <value>,
? ? ?<key>: <value>,
? ? ?...
?})
此命令將在您正在使用的集合中插入文檔。
Insert Multiple Documents
?db.<collection_name>.insertMany([
? ? ?{
? ? ? ? ?<key>: <value>,
? ? ? ? ?<key>: <value>,
? ? ? ? ?...
? ? ?},
? ? ?{
? ? ? ? ?<key>: <value>,
? ? ? ? ?<key>: <value>,
? ? ? ? ?...
? ? ?},
? ? ?...
?])
此命令將在您正在使用的集合中插入多個(gè)文檔。
Find Documents
?db.<collection_name>.find()
此命令將查找您正在使用的集合中的所有文檔。
Find Documents with Query
?db.<collection_name>.find({
? ? ?<key>: <value>
?})
此命令將查找您正在使用的集合中與查詢匹配的所有文檔。
Count Documents
?db.<collection_name>.find({
? ? ?<key>: <value>
? ? ?}).count()
此命令將計(jì)算您正在使用的集合中與查詢匹配的所有文檔。
Limit Documents
?db.<collection_name>.find().limit(<number>)
該命令將限制 find 命令返回的文檔數(shù)量。
forEach()
?db.<collection_name>.find().forEach(function(doc) {
? ? ?print("Key: " + doc.<key> + " Value: " + doc.<value>);
?})
此命令將迭代您正在使用的集合中的所有文檔,并打印每個(gè)文檔的鍵和值。
Find One Document
?db.<collection_name>.findOne({
? ? ?<key>: <value>
?})
此命令將查找您正在使用的集合中與查詢匹配的第一個(gè)文檔。
Update a Document
?db.<collection_name>.updateOne({
? ? ?<key>: <value>
?}, {
? ? ?$set: {
? ? ? ? ?<key>: <value>
? ? ?}
?})
此命令將更新您正在使用的集合中與查詢匹配的第一個(gè)文檔。$set 用于更新文檔。
Increment a Document
?db.<collection_name>.updateOne({
? ? ?<key>: <value>
?}, {
? ? ?$inc: {
? ? ? ? ?<key>: <value>
? ? ?}
?})
此命令將增加您正在使用的集合中與查詢匹配的第一個(gè)文檔中的鍵值。$inc 用于增加鍵的值。
Delete a Document
?db.<collection_name>.deleteOne({
? ? ?<key>: <value>
?})
此命令將刪除您正在使用的集合中與查詢匹配的第一個(gè)文檔。
Add new field to a Document
?db.<collection_name>.updateOne({
? ? ?<key>: <value>
?}, {
? ? ?$set: {
? ? ? ? ?<new_key>: <new_value>
? ? ?}
?})
此命令將向您正在使用的集合中與查詢匹配的第一個(gè)文檔添加一個(gè)新字段。
Greater than
?db.<collection_name>.find({
? ? ?<key>: {
? ? ? ? ?$gt: <value>
? ? ?}
?})
此命令將查找您正在使用的集合中鍵大于值的所有文檔。
Greater than or equal to
?db.<collection_name>.find({
? ? ?<key>: {
? ? ? ? ?$gte: <value>
? ? ?}
?})
此命令將查找您正在使用的集合中鍵大于或等于該值的所有文檔。
Less than
?db.<collection_name>.find({
? ? ?<key>: {
? ? ? ? ?$lt: <value>
? ? ?}
?})
此命令將查找您正在使用的集合中鍵小于該值的所有文檔。
Less than or equal to
?db.<collection_name>.find({
? ? ?<key>: {
? ? ? ? ?$lte: <value>
? ? ?}
?})
此命令將查找您正在使用的集合中鍵小于或等于該值的所有文檔。
Not equal to
?db.<collection_name>.find({
? ? ?<key>: {
? ? ? ? ?$ne: <value>
? ? ?}
?})
此命令將查找您正在使用的集合中鍵不等于值的所有文檔。
And
?db.<collection_name>.find({
? ? ?$and: [
? ? ? ? ?{
? ? ? ? ? ? ?<key>: <value>
? ? ? ? ?},
? ? ? ? ?{
? ? ? ? ? ? ?<key>: <value>
? ? ? ? ?}
? ? ?]
?})
此命令將查找您正在使用的集合中與查詢匹配的所有文檔。
Or
?db.<collection_name>.find({
? ? ?$or: [
? ? ? ? ?{
? ? ? ? ? ? ?<key>: <value>
? ? ? ? ?},
? ? ? ? ?{
? ? ? ? ? ? ?<key>: <value>
? ? ? ? ?}
? ? ?]
?})
此命令將查找您正在使用的集合中與查詢匹配的所有文檔。
Sort
?db.<collection_name>.find().sort({
? ? ?<key>: <value>
?})
此命令將按鍵對(duì)您正在使用的集合中的所有文檔進(jìn)行排序。
Sort Descending
?db.<collection_name>.find().sort({
? ? ?<key>: -1
?})
此命令將按鍵降序?qū)δ谑褂玫募现械乃形臋n進(jìn)行排序。
Drop Collection
?db.<collection_name>.drop()
此命令將刪除您正在使用的集合。
謝謝你??
感謝您花時(shí)間閱讀我的博客文章!我希望您發(fā)現(xiàn)它有幫助且內(nèi)容豐富。您的支持和參與對(duì)我來說意義重大。如果您有任何問題或反饋,請(qǐng)隨時(shí)與我們聯(lián)系。感謝您的持續(xù)關(guān)注,并期待將來分享更多有價(jià)值的內(nèi)容。再一次感謝你!