MongoDB 설명서 - 기본 사용 - 클라이언트(dos 창)/시각화 도구에서 MongoDB 기본 문 사용

아담:

        이 기사에서는 기본 데이터 추가, 삭제, 수정 및 쿼리를 완료하기 위해 클라이언트 측에서 mongodb의 기본 응용 프로그램과 spring-boot에서 mongodb를 통합하는 방법을 설명하고 연구합니다.

 문:

MongoDB 문서 - 기본 개념 - 단일 Cheng 블로그 - CSDN 블로그

MongoDB 설명서--기본 설치-linux 설치(mongodb 환경 구축)-docker 설치(데이터 볼륨 마운트)-및 상세 버전 비교_一单成的博客-CSDN Blog

MongoDB 설명서--기본 설치-linux 설치(mongodb 환경 구축)-docker 설치(데이터 볼륨 마운트)-및 상세 버전 비교_一单成的博客-CSDN Blog

MongoDB 설명서-고급 사용-MongoDB 인덱스-createindex() 및 dropindex()-MongoDB에서 정규식을 사용하여 find_One Single Cheng 블로그-CSDN 블로그

추가, 삭제, 수정 및 쿼리를 완료하기 위한 MongoDB---MongoRepository를 사용한 MongoDB 문서 고급 사용-스프링 부트 통합_One Single Cheng의 블로그-CSDN 블로그

추가, 삭제, 수정 및 쿼리를 완료하기 위한 MongoDB---MongoTemplate을 사용한 MongoDB 문서 고급 사용-스프링 부트 통합_One Single Cheng의 블로그-CSDN 블로그

공식글을 먼저 올려주세요

MongoDB CRUD 작업 - MongoDB-CN-Manual

이 문서는 다음과 같이 나뉩니다.

        클라이언트(도스 창)/비주얼라이저에서 MongoDB 문 사용

       spring-boot에 mongodb 통합 및 데이터 추가, 삭제, 수정 및 쿼리 완료

창 및 시각화 도구에서 mongodb 문을 사용하여 작동

MongoDB가 데이터베이스 및 컬렉션을 생성하는 방법 | MongoDB 중국 커뮤니티

MongoDB CRUD 작업 - MongoDB-CN-Manual

 효과를 보여주기 위해 새 쿼리를 만듭니다.

 mongodb는 어떻게 데이터베이스와 컬렉션을 생성합니까?

        데이터베이스 학습의 첫 번째 단계는 데이터베이스와 컬렉션을 만드는 것입니다. 데이터베이스는 모든 컬렉션을 저장하는 데 사용되고 컬렉션은 모든 문서를 저장하는 데 사용됩니다. 이러한 문서에는 관련 "FieldName" 및 "Field" 값이 한 번에 포함됩니다.

동시에 우리가 알아야 할 한 가지는 문서 안에도 문서가 존재할 수 있다는 것입니다. Java의 엔터티 클래스와의 비유는 훨씬 이해하기 쉽습니다. 클래스의 특성은 다른 엔터티 클래스일 수도 있습니다. 

다음은 문서의 예입니다. 

{
    “Employeeid”:1,
    “EmployeeName”:“Smith”
}
冒号前面是field names
后面就是 field values

Use 명령을 사용하여 데이터베이스 생성

        use 명령을 사용하여 새 데이터베이스를 생성합니다.

use ExampleDB

이 코드의 ExampleDB는 새로 생성된 데이터베이스 파일입니다.

이 mongodb 사용 코드는 mysql 과 비교할 수 있습니다 .

IF NOT EXISTS 
    (SELECT * FROM sys.databases WHERE name = 'ExampleDB') 
        CREATE DATABASE ExampleDB;

이 예제의 sql은 mysql에서 실행했을 때의 효과입니다. 

코드 설명:

        1. use 명령을 사용하여 mongodb에 데이터베이스를 생성합니다.데이터베이스가 없으면 새로운 데이터베이스가 생성됩니다.

        2. 데이터베이스가 있는 경우 데이터베이스도 사용하십시오.

실행에 성공한 것을 확인할 수 있습니다. use 문이 성공적으로 실행된 후 mongodb는 자동으로 생성된 데이터베이스로 전환합니다.

insert()를 사용하여 컬렉션/테이블 생성

컬렉션을 만드는 가장 간단한 방법은 컬렉션에 레코드(필드 이름과 값이 있는 문서만)를 삽입하는 것입니다. 컬렉션이 없으면 새 컬렉션이 생성됩니다.

use ExampleDB

db.ExampleDB.insert
(
	{
		"员工编号":1,
		"员工姓名":"阿丹"
	}
	
)

 구문을 설명하십시오.

        db: 데이터베이스에 대한 연결을 나타내는 개체입니다. 이 언어를 사용하기 전에 데이터베이스 연결을 설정해야 합니다. 코드에서 데이터베이스에 액세스합니다.

       ExampleDB: 작업할 컬렉션의 이름 해당 컬렉션이 없으면 이 컬렉션을 생성합니다.

  {
        "员工编号":1,
        "员工姓名":"阿丹"
    }

위는 문서

        "직원 번호": 필드 이름입니다.

        "직원 번호 값": 값입니다.

 알아채다:

        mongodb에서 이 라이브러리에 데이터가 없으면 이러한 삽입 문을 사용하면 다음과 같은 새 라이브러리가 생성됩니다.

        위 문장을 사용하여 삽입할 때 완벽하지 않습니다. 이렇게 하면 새 문서가 라이브러리와 같은 이름의 컬렉션에 추가되기 때문입니다. 조심하세요.

 insert()를 사용하여 mongodb에 배열 삽입

여러 문서를 배열 형식으로 한 번에 여러 번 전달해 보십시오.

완료 단계 생각:

        1. 문서 배열을 보관할 예제 배열이라는 javascript 변수를 만듭니다.

        2. 필드 이름과 필요한 문서가 포함된 값을 변수에 추가합니다.

        3. insert 명령을 사용하여 컬렉션에 문서 배열을 삽입합니다.

#定义数组
var Example = [
	{
		"员工编号":2,
		"员工姓名":"帅丹"
	},
	{
		"员工编号":3,
		"员工姓名":"大力丹"
	},
	{
		"员工编号":4,
		"员工姓名":"快乐丹"
	}
]
#将定义的数据添加到ExampleDB集合中
db.ExampleDB.insert(Example)

이것이 MongoDB에서 배치 추가가 수행되는 방식입니다.
 이제 3개의 데이터가 성공적으로 추가되었음을 알 수 있습니다. 그것은 세 가지 문서입니다.

 쿼리 문을 사용하고 JSON 형식으로 인쇄하도록 지정

        기존에 사용하던 문서 형식 중 가장 많이 사용되는 형식은 json 형식입니다. json 형식의 문자열을 얻으면 더욱 그렇습니다. 이 json 문자열을 엔터티 클래스로 쉽게 변환할 수 있습니다.

        json 형식의 전체 이름은 JavaScript Ojbect Notation 형식(java를 입력하는 사용자에게 매우 친숙함)이며, 정보를 정기적으로 저장하고 읽기 쉬운 형식입니다.

        그런 다음 명령문을 사용하여 json 인쇄 예제를 완성해 보겠습니다.

db.查询使用的集合.find().forEach(printjson)

실행 및 시도:

 

 코드 방법 및 매개변수 설명:

  • db.ExampleDB.find(): 이 문은 find()메서드를 사용하여 ExampleDB 데이터베이스의 모든 문서를 쿼리합니다. find()이 메서드는 쿼리 기준을 충족하는 모든 문서가 포함된 커서 개체를 반환합니다.
  • forEach: 이 메서드는 커서에 있는 각 문서를 탐색하고 각 문서에 대해 지정된 작업을 수행하는 데 사용됩니다.
  • printjson: 문서를 JSON 형식으로 콘솔에 출력하는 기능입니다.

그 중 find()는 괄호 안에 아무 것도 쓰지 않으면 기본적으로 모두 찾습니다.

기본 키 ID를 설정하는 방법은 무엇입니까?

방금 MongoDB가 우리에게 준 반환 값을 파싱하면 직원 번호가 비즈니스 로직에서 기본 키 ID로 사용되는 것을 볼 수 있습니다. 그러나 mongodb 자체가 불규칙한 문자열 필드를 생성한다는 것을 발견했습니다. "_ID". 이제 이 "_id"를 기본 키 ID로 설정해야 합니다.

MongoDB에서 _id 필드는 각 문서가 컬렉션 내에서 고유하게 식별될 수 있도록 컬렉션의 기본 키입니다. _id 필드에는 고유한 ObjectID 값이 포함되어 있습니다.

기본적으로 컬렉션에 문서를 삽입할 때 필드 이름에 _id가 있는 필드 이름을 추가하지 않으면 MongoDB가 자동으로 개체 ID 필드를 추가합니다.

따라서 추가할 때 "_id"라는 이 필드가 있으면 기본 키 교체를 완료할 수 있다는 것이 원칙입니다. 시스템에서 생성된 ID는 더 이상 사용되지 않습니다.

시도해 봅시다:

다음 코드를 사용하십시오.

db.ExampleDB.insert
(
	{
		"_id":1,
		"员工姓名":"代码阿丹"
	}
	
)

 이 문서에서 필드 이름을 지정했습니다: "_id"

 추가가 성공했음을 보여줍니다.앞 절의 쿼리 출력을 사용하여 코드 Adan의 id가 1인지 확인하십시오.시스템 자체에서 생성한 id를 교체하십시오.

기본 키 id의 규칙 교체가 완료되었음을 알 수 있습니다.

 필드 이름 "_id"에 대한 할당을 컬렉션의 기본 키로 사용할 수 있다고 설명합니다.

mongodb에서 쿼리 문 find()를 사용하여 mongodb 문서를 쿼리합니다.

        조건문 실행을 통해 mongodb에서 보다 정확한 데이터를 얻을 수 있습니다. 및 조합 데이터. 백그라운드에서 얻은 데이터가 정확할수록 후속 개발에 필요한 노력이 줄어듭니다.

        그런 다음 MongoDB는 MongoDB 데이터베이스에서 문서를 검색하는 데 사용되는 db.collection.find()라는 함수를 제공합니다.

기본 쿼리 작업:

        기본 쿼리 작업에는 MongoDB 컬렉션의 모든 문서 가져오기와 같은 간단한 작업이 포함됩니다.

        이전 작업에서 새 ExampleDB 컬렉션을 만들었기 때문입니다. 따라서 다음 명령을 실행할 수 있습니다.

db.ExampleDB.find({})

명령 분석:

        db.ExampleDB.find({}) 이 MongoDB 문이 하는 일은 ExampleDB 데이터베이스에서 모든 문서를 찾는 것입니다.

find() 메서드는 MongoDB에서 문서를 쿼리할 때 사용하는 메서드로, 쿼리 조건을 매개변수로 받아 조건을 만족하는 모든 문서를 반환합니다. 이 예에서 쿼리 조건은  {}제약 조건이 없음을 나타내는 빈 개체이므로 데이터베이스의 모든 문서가 반환됩니다.

{} 이 기호는 빈 쿼리 조건을 나타내며 다른 조건을 사용하여 쿼리 결과를 제한할 수도 있습니다. 예를 들어  { "员工姓名": "阿丹" } 이와 같은 것을 사용하여 직원 이름이 "Adan"인 문서를 쿼리하거나  { "员工编号": { $gt: 100 } } 직원 번호가 100보다 큰 문서를 쿼리할 수 있습니다.

따라서 db.ExampleDB.find({}) 이 문의 기능은 ExampleDB 데이터베이스에 있는 모든 문서를 반환하는 것이며,  {} 제한이 없으며 모든 문서가 반환된다는 의미입니다.

조건부 쿼리

조건부 쿼리 지우기

        예를 들어 직원 번호가 1인 직원을 쿼리하고 싶습니다. 아래는 예입니다.

#查询员工编号为1的员工
db.ExampleDB.find({"员工编号":1}).forEach(printjson)

이 문은 {}와 대괄호를 사용하며 대괄호 안에 json 형식을 사용하여 지정된 직원 번호를 쿼리하는 규칙을 지정합니다.

범위 쿼리

        보다 큼 검색 조건을 사용하면 지정된 값보다 큰 문서를 실제로 검색합니다.

        예를 들어 직원 번호가 2보다 큰 문서를 쿼리하고 싶습니다. 다음은 예입니다.

#查询员工编号大于2的员工
db.ExampleDB.find({"员工编号":{$gt : 2}}).forEach(printjson)

 설명하다:

        $gt는 쿼리에 대한 연산자를 선택합니다. 이는 보다 큼 기호 표현식을 사용함을 의미합니다.

 귀하에게 관련 판단 표현을 제공합니다.

  • $lt: 미만
  • $eq:동일한
  • $ne:같지 않음
  • $gt:크거나 같음
  • $lt: 작거나 같음

MongoDB 커서 자습서: 예제를 통해 학습

        db.collection.find() 함수를 사용하여 컬렉션에서 문서를 검색할 때 결과는 커서라고 하는 문서 컬렉션에 대한 포인터를 반환합니다. 포인터와 유사합니다.

        기본적으로 커서는 쿼리 결과가 반환될 때 자동으로 반복됩니다. 물론 커서에서 반환된 결과 디렉터리를 하나씩 명시적으로 표시하는 것도 가능합니다.

        예를 들어 컬렉션에 세 개의 문서가 있는 경우 커서는 첫 번째 문서를 가리키도록 초기화된 다음 컬렉션의 모든 문서를 순회합니다.

 샘플 코드:

#演示游标
var myExampleDB = db.ExampleDB.find({});
while(myExampleDB.hasNext()){
	print(tojson(myExampleDB.next()))
}

 코드 설명:

        이 코드가 하는 일은 ExampleDB 데이터베이스에서 모든 문서를 찾고 각 문서를 JSON 형식으로 콘솔에 출력하는 것입니다.

        먼저  db.ExampleDB.find({}) ExampleDB 데이터베이스의 모든 문서를 메서드를 통해 쿼리하고 커서 개체를 반환합니다  myExampleDB.

        그런 다음  while 루프를 사용하여 커서의 문서가 통과될 때까지 커서의 각 문서를 통과합니다. 루프 본문에서  tojson() 각 문서를 JSON 형식으로 변환하는 함수와  print() JSON을 콘솔에 인쇄하는 함수를 사용합니다.

전반적으로 이 코드가 하는 일은 ExampleDB 데이터베이스의 모든 문서를 쿼리하고 각 문서를 JSON 형식으로 콘솔에 출력하는 것입니다.

MongoDB 제한 쿼리 결과

        이 한정자는 쿼리 결과 집합에 반환되는 문서 수를 제한하는 데 사용됩니다. 아래는 예시입니다.

#limit结果
db.ExampleDB.find().limit(2).forEach(printjson)

구문과 사용법은 비슷하지만 mysql과 같지는 않습니다. 이 기능의 매개 변수 수는 몇 가지 문서를 찾을 것입니다.

MongoDB에서 정렬

MongoDB에서는 컬렉션에 있는 키의 오름차순 또는 내림차순에 따라 반환할 문서의 순서를 공식화하는 것이 지원됩니다.

샘플 코드:

#根据员工编号倒序排序
db.ExampleDB.find().sort({ 员工编号: -1}).forEach(printjson)

여기서는 Employeeid에서 내림차순으로 반환된 문서를 명확하게 보여줍니다.

값 1은 오름차순입니다.

MongoDB의 카운팅 함수 Count()

집계의 개념은 쿼리에서 반환된 결과에 대한 계산을 수행하는 것입니다. 예를 들어 트리거된 쿼리를 기반으로 컬렉션에 얼마나 많은 문서가 있는지 알고 싶다고 가정하면 MongoDB는 count() 함수를 제공합니다.

문서 수를 쿼리할 수 있습니다.

예를 들어 보겠습니다.

#查看集合中文档数量
db.ExampleDB.count()

다음은 count() 함수의 사용법입니다.

MongoDB에서 count() 함수는 지정된 기준을 충족하는 컬렉션의 문서 수를 계산하는 데 사용됩니다. count() 이 함수는 쿼리 조건을 인수로 사용하고 조건을 충족하는 문서 수를 반환합니다.

count() 다음은 함수를 사용하는 몇 가지 예입니다  .

컬렉션에 있는 모든 문서의 수를 계산합니다.

db.myCollection.count({})

지정된 조건에 대한 컬렉션의 문서 수를 계산합니다.

db.myCollection.count({ "key": "value" })

파이프라인 연산자를 사용하여  match 조건과 일치하는 컬렉션의 문서 수를 계산합니다.

db.myCollection.aggregate([
  { $match: { "key": "value" } },
   { $count: "count" }
])

match 및  파이프라인 연산자를 사용하여  group 그룹화 후 문서 수를 계산합니다.

db.myCollection.aggregate([
   { $match: { "key": "value" } },
   { $group: { _id: "groupKey", count: { $sum: 1 } } }
])

위의 예에서 count() 함수는 컬렉션의 모든 문서 수를 계산하고 특정 조건을 충족하는 문서 수를 계산하고 및 파이프라인 연산자를 사용하여 그룹화된 문서 수를 계산하는 데 사용  match 됩니다  group .

MongoDB에서 remove() 파일 삭제

MongoDB에서 db.collection.remove() 메서드는 컬렉션에서 문서를 제거하는 데 사용됩니다. 컬렉션에서 모든 문서를 제거하거나 특정 기준을 충족하는 문서만 제거할 수 있습니다.

제거 명령만 실행하면 모든 문서가 컬렉션에서 제거됩니다.

다음 코드 예제는 컬렉션에서 특정 문서를 삭제하는 방법을 보여줍니다.

#删除员工标号为4的文档
db.ExampleDB.remove({员工编号:4})

해당 필드 이름과 값을 삭제하는 구문을 볼 수 있습니다.

 Update()를 사용하여 MongoDB 문서 업데이트

MongoDB는 컬렉션의 문서를 업데이트하는 update() 명령을 제공합니다. 업데이트할 문서만 업데이트하려면 선택한 문서가 업데이트되도록 업데이트 문에 조건을 추가할 수 있습니다.

이 명령의 기본 매개변수는 문서를 업데이트해야 하는 조건과 수행해야 하는 수정 사항입니다.

운영 아이디어:

  1. 업데이트 명령을 실행합니다.
  2. 업데이트해야 하는 문서를 결정하는 데 사용할 기준을 선택합니다. 우리의 경우 직원 ID가 22인 문서를 업데이트하려고 합니다.
  3. 필드 이름을 수정하려면 set 명령을 사용하십시오.
  4. 수정할 필드 이름을 선택하고 그에 따라 새 값을 입력합니다.
#修改员工标号为1的名字
db.ExampleDB.update(
	{"员工编号":1}, 
	{
		$set:{
			"员工姓名":"库库帅阿丹"
		}
	}
)

 레코드가 조건을 충족하고 레코드가 해당 필드를 수정함을 보여줍니다! ! !

업데이트 사용법은 다음과 같습니다.

이 코드는 MongoDB의 기능을 사용하여  update() "Employee Number"라는 필드 값이 1인 문서의 "Employee Name" 필드 값을 "Kuku Shuai Adan"으로 업데이트하는 코드입니다.

특히 update() 이 함수는 두 개의 매개변수를 허용합니다.

  1. 업데이트할 문서를 지정하는 쿼리 기준입니다. 이 예제에서 쿼리 조건은  {"员工编号":1}"직원 번호" 필드 값이 1인 문서를 업데이트하는 것입니다.
  2. 업데이트 작업 - 문서에서 수행할 업데이트 작업을 지정합니다. 이 예에서 업데이트 작업은  { $set: { "员工姓名": "库库帅阿丹" } }"직원 이름" 필드의 값을 "Kuku Shuai Adan"으로 업데이트하는 것입니다.

그중 업데이트 작업은 다음 연산자를 사용할 수 있습니다.

  • $set: 지정된 필드의 값을 설정합니다.
  • $unset: 지정된 필드를 삭제합니다.
  • $rename: 지정된 필드의 이름을 바꿉니다.
  • $inc: 지정된 필드의 값을 증가시킵니다.

위의 예 외에도 update() 함수는  multi 매개변수(여러 문서를 업데이트할지 여부 지정) 및  upsert 매개변수(새 문서를 삽입할지 여부 지정)와 같은 다른 매개변수를 사용하여 업데이트 동작을 제어할 수 있습니다.

간단히 말해서 update() 이 함수는 MongoDB에서 문서를 업데이트하는 데 사용되는 함수로 데이터베이스의 문서를 쉽게 수정할 수 있습니다.

추천

출처blog.csdn.net/weixin_72186894/article/details/132075991