MongoDB는 C++ 언어로 작성되었으며 분산 파일 저장 기반의 오픈 소스 데이터베이스 시스템입니다. 부하가 높은 조건에서는 더 많은 노드를 추가하면 서버 성능을 보장할 수 있습니다. MongoDB는 웹 애플리케이션을 위한 확장 가능한 고성능 데이터 스토리지 솔루션을 제공하는 것을 목표로 합니다.
1. 추가, 삭제, 수정 및 확인
현재 데이터베이스의 모든 컬렉션을 확인합니다.
show collections 或使用 show tables
컬렉션을 만드는 방법에는 명시적 생성과 암시적 생성이 있습니다
显示创建可以使用命令 db.createCollection(“集合名称") 隐式创建可以使用命令 db.集合名称.insert({}), 指创建集合并同时向集合中插入数据, 例如:db.customer.insert({name:”jack”})
컬렉션에 문서 추가
db.collectionname.insert({}) 명령을 사용하세요. 예:
db.user1.insert({name:”jack”,age:20})
컬렉션에서 문서 삭제
使用命令 db.集合名称.remove({删除条件}), 不加删除条件为删除集合中的所有文档: 例如,删除c1集合中的所有文档 db.c1.remove() 删除c1集合中name为user1的文档 db.c1.remove({name:”user1”})
컬렉션에서 문서 쿼리
db.集合名称.find({条件}) 或者使用 db.集合名称.findOne() 查询第一个文档
Document 컬렉션의 문서를 쿼리하고 특정 키 값을 반환합니다.
쿼리 expressions 외에도 MongoDB는 몇 가지 추가 매개변수 옵션도 지원합니다.
일부 특정 필드 값만 반환하려는 경우:
연령 필드를 제외한 모든 필드 반환
db.user.find({},{age:0});
댓글을 제외한 태그=테니스의 모든 열 반환
db .posts.find({tags:'tennis'},{comments:0});
userid=16으로 이름 필드를 반환
db.user.find({userid:16},{name:1}) ;
{"_id":16,"name":"user16"}
x=john
db.things.find({x:"john"},{z:1})의 모든 z 필드를 반환합니다.
조건식(<, <=, >, >=,!=)을 사용하여 컬렉션의 문서를 쿼리합니다.
//보다 큼: 필드 > value
db.collection.find({field:{$ gt:value}});
//보다 작음: 필드 < value
db.collection.find({field:{$lt:value}});
//크거나 같음: 필드 >= value
db .collection.find({field:{$gte:value}});
//작거나 같음: 필드 <= value
db.collection.find({field:{$lte:value }});
//같지 않음: field != value
db.collection.find({field:{$ne:value}});
컬렉션의 문서 쿼리, 통계(개수), 정렬( 정렬), 페이징(건너뛰기, 제한)
db.customer.count(); db.customer.find().count(); db.customer.find({age:{$lt:5}}).count(); db.customer.find().sort({age:1}); 降序-1 db.customer.find().skip(2).limit(3); db.customer.find().sort({age:-1}).skip(2).limit(3); db.customer.find().sort({age:-1}).skip(2).limit(3).count(); db.customer.find().sort({age:-1}).skip(2).limit(3).count(0); db.customer.find().sort({age:-1}).skip(2).limit(3).count(1);
컬렉션 내 문서 쿼리
$all은 주로 쿼리 조건 중 하나가 포함되지 않는 한 배열의 포함 관계를 쿼리하는 데 사용됩니다.
의 관계를 나타냅니다. , 이름이 user2 또는 age 3인 문서를 쿼리하려면 명령은 다음과 같습니다.
db .customer.find({$or:[{name:”user2”},{age:3}]})
db.customer.find({$nor:[{name:”user2”},{ age:3}]})
db.customer.find({name:{$exists:1}})
$exists:1은 true를 의미하며, 이는 존재함을 의미합니다.
$exists:0은 false를 의미하며,
cursor가 없음을 의미합니다.
컬렉션의 문서 업데이트구문: db.collection.update(criteria,objNew,upsert,multi)
매개변수 설명:
criteria: 설정에 사용됨
쿼리 조건의 개체 objNew: 업데이트 내용을 설정하는 데 사용되는 개체
upsert: 레코드가 이미 존재하면 업데이트하고, 그렇지 않으면 새 레코드를 추가하면 값은 0 또는 1입니다.
multi: 조건을 충족하는 레코드가 여러 개 있으면 모두 업데이트할지 여부는 값이 0 또는 1
일반적으로 마지막 두 매개변수는 각각 0,1입니다. 즉,
db.collection.update(criteria,objNew,0,1)
db.c1.update({name:"user1"},{name:"jack"})
user1이라는 문서에 주소를 추가하려면 다음 명령을 사용할 수 있습니다.
db.c1.update({name:”user1”},{$set:{address:”bj”}},0,1 )
이름이 user1인 문서의 경우 주소는 tj로 수정되고 다른 키-값 쌍은 변경되지 않습니다. 명령은 다음과 같습니다.
db.c1.update({name:”user1”},{$set :{address:”tj”}}, 0,1)$inc를 사용하여 컬렉션의 user1이라는 나이에 1을 더하고 다른 키는 변경하지 않습니다.
$inc는 키에 지정된 값을 더하거나 빼는 것을 의미합니다. value
$unset은 특정 키를 삭제하는 데 사용됩니다. 예를 들어 문서에서 주소 키를 삭제하는 데 사용됩니다. user1이라는 이름을 가진 경우 다음 명령을 사용할 수 있습니다:
db.c1.update({ name:”user1”},{$unset:{address:1}},0,1)
2. 색인:
색인은 쿼리 속도를 높이는 데 사용됩니다. 데이터베이스 색인은 책 색인과 유사합니다. 색인을 사용하면 책 전체를 살펴볼 필요가 없지만 데이터베이스가 색인에서 직접 검색할 수 있으므로 검색 속도가 몇 배 더 빨라집니다. 색인에서 항목을 찾으면 대상 문서의 위치로 직접 이동할 수 있습니다.
일반 인덱스:
생성: db.collection.ensureIndex({key:1})
인덱스 관련 정보 보기: db.collection.stats()
인덱스의 쿼리 사용량 보기: db.collection.find( { key:value}).explain()
색인 삭제: db.collection.dropIndex({key:1})
컬렉션을 삭제하면 컬렉션의 모든 인덱스도 삭제됩니다.
고유 인덱스:
Create: db.collection. verifyIndex({key:1},{unique:true})
인덱스 관련 정보 보기: db.collection.stats()
인덱스를 사용하여 쿼리 보기: db.collection.find({key:value}). explain()
색인 삭제: db.collection.dropIndex({key:1})
컬렉션을 삭제하면 해당 컬렉션의 인덱스도 모두 삭제됩니다
3. Capped collection(캡핑 컬렉션)
고정 컬렉션이란 무엇을 의미하나요? 미리 생성되어 고정된 크기를 갖는 컬렉션입니다.
고정 컬렉션 기능: 고정 컬렉션은 링 큐와 매우 유사하며 공간이 부족하면 새 문서를 위한 공간을 확보하기 위해 가장 오래된 문서가 삭제됩니다. 일반적으로 고정 컬렉션은 너무 많은 운영 제한 없이 만료된 속성을 자동으로 제거하려는 모든 시나리오에 적합합니다.
고정 컬렉션 생성:
db.createCollection(“collectionName”,{capped:true,size:100000,max:100})
size는 컬렉션 크기를 KB 단위로 지정하고, max는 문서 수를 지정합니다.
지정할 때 문서 수량이 제한되면 크기도 지정해야 합니다. 제거 메커니즘은 용량이 가득 차지 않은 경우에만 문서 수에 따라 작동합니다. 용량이 가득 찬 경우 제거 메커니즘은 용량에 따라 작동합니다.
4. 백업(mongodump) 및 복구(mongorestore)
MongoDB는 MongoDB 다운로드 디렉터리에 있는 mongodump.exe 및 mongorestore.exe 파일(즉, mongodb bin에 있는 명령)인 백업 및 복구 기능을 제공합니다. )
다음 명령을 사용하여 데이터를 백업하세요.
mongodump -h dbhost -d dbname -o dbdirectory
-h: MongoDB 서버 주소(예: 127.0.0.1) 물론 포트 번호를 지정할 수도 있습니다. 127.0.0.1:27017
- d: 백업해야 할 데이터베이스 인스턴스. 예: test -o: 백업 데이터 저장 위치. 예: c:datadump 물론 이 디렉터리를 미리 생성해야 합니다. 백업이 완료되면 시스템은 자동으로 덤프 디렉터리에 테스트를 생성하며, 이
디렉터리는 데이터베이스 인스턴스의 백업 데이터를 저장합니다.
다음 명령을 사용하여 데이터를 복원하세요.
-h: MongoDB 서버 주소
-d: 복원해야 하는 데이터베이스 인스턴스입니다. 예: test, 물론 this test2
-directoryperdb와 같이 이름은 백업과 동일할 수도 있습니다. 백업 데이터의 위치(예: c:datadumptest
To 데이터를 내보내려면 다음 명령을 사용할 수 있습니다:
mongoexport -h dbhost -d dbname -c collectionName -o 출력매개변수 설명:
-h 데이터베이스 주소
-d 사용된 라이브러리를 지정합니다
-c 내보낼 컬렉션을 지정합니다
- o 내보낼 파일 이름을 지정합니다.
예:
데이터를 가져오려면 다음 명령을 사용할 수 있습니다.
매개변수 설명:
-h 데이터베이스 주소
-d는 사용할 라이브러리를 지정합니다.
-c는 가져올 컬렉션을 지정합니다.
로컬 파일 주소...
예:
위 내용은 MongoDB의 일반적인 작업에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!