찾다
백엔드 개발PHP 튜토리얼MongoDB 팁 및 예방 조치 요약

C++ 언어로 작성된 분산 문서 저장 데이터베이스인 Mongodb는 웹 애플리케이션을 위한 확장 가능한 고성능 데이터 저장 솔루션을 제공하는 것을 목표로 합니다. MongoDB는 현재 인기 있는 NoSQL 데이터베이스인 고성능 오픈 소스 스키마 없는 문서 데이터베이스입니다. 이 기사에서는 MongoDB를 사용하면서 직면하는 문제에 대한 해결 기술을 공유하고 참고 및 학습을 위해 공유합니다.

1. 배열 필드가 비어 있지 않은 레코드를 찾습니다.

데이터에서 배열 필드가 비어 있지 않은 레코드를 찾습니다.

예: 다음과 같은 Mongo 문서가 있습니다.

{
 "id" : "581c060f2b436c05aafb1632",
 "commit_history" : [ 
 "581c20d52b436c05aafb1633", 
 "581c21c12b436c05aafb1634"
 ]
},
{
 "id" : "581c060f2b436c05aafb1633",
 "commit_history" : []
}

commit_history가 비어 있지 않은 레코드를 찾으려면 다음 방법이 있습니다.

방법 1: db.collection.find({commit_history: {$not : {$크기: 0}}})

방법 2: db.collection.find({'commit_history.0': {$exists: 1}})

2. MongoDB에 사용자 추가

MongoDB의 컬렉션에 사용자를 추가하려면 다음을 수행하세요.

특정 라이브러리로 collection_name 스위치를 사용하세요

db.createUser(
 {
 user: "collection_name",
 pwd: "password",
 roles: [ "readWrite", "dbAdmin" ]
 }
)

3. 지정된 필드의 열에 대해서는 업데이트 작업을 사용하세요.

예를 들어 이름 열을 삭제하려면:

query json:

{"name":{$exists:true}}

update json:

{$unset:{"name":""}}

넷째, 데이터 내보내기, mongodb의 bin 디렉터리에서 mongoexport 명령을 실행하고 관련 매개 변수를 설정합니다.

예:

./mongoexport -h 192.168.0.201 --port 27017 –d admin –u admin –p admin -c department -o /home/admin/department.dat

-h: 연결할 데이터베이스의 IP를 지정합니다.

--port: 연결할 데이터베이스의 포트를 지정합니다.

-u: 연결할 데이터베이스의 사용자 이름을 지정합니다. -p: 연결할 데이터베이스를 지정합니다.

-d: 연결할 라이브러리 이름을 지정합니다.

-c: 내보낼 데이터 컬렉션을 지정합니다. 내보낼 데이터

참고: (1) 연결된 데이터베이스가 정상적으로 작동하는지 확인해야 합니다.

             (2) 데이터베이스에 사용자 정보가 추가되었는데 시작 시 사용자 인증으로 시작되지 않는 상황이 발생했는데, 이 명령을 실행하면 사용자 이름과 비밀번호를 지정한 후에야 내보내기가 성공했습니다. .. 비슷한 상황에 처한 사람이 있다면 시도해 보는 것이 좋습니다.


5. 데이터 가져오기, mongodb의 bin 디렉터리에서 mongoimport 명령을 실행하고 관련 매개 변수를 설정합니다. 매개 변수 설명은 위와 동일합니다.

예:

./mongoimport --port 27017 -d admin -u admin –p admin –c department /home/common/mongodb305/bin/department.dat

6. 비-사용자 인증 문제 amdin 데이터베이스:


us mongodb 데이터베이스의 라이브러리에 사용자를 추가하려면 대상 데이터베이스에서 다음 명령을 사용할 수 있습니다. 예를 들어 mongoTest 라이브러리에 읽기 및 쓰기 권한이 있는 사용자를 추가합니다.

db.createUser({"user":"test","pwd":"123456","roles":["readWrite"]})

관리자 데이터베이스에 추가할 수도 있습니다:

db.createUser({"user":"test","pwd":"123456","roles":[{"role":"readWrite","db":"test"},"readWrite"]})

이 두 가지 방법에는 차이가 있으며 한때 나를 속인 것은 바로 이 차이점입니다.


첫 번째 방법을 사용하여 추가할 때 , mongodb의 bin 디렉토리에서 다음을 직접 실행할 수 있습니다. 이 명령은 테스트 데이터베이스에 들어가서 이 사용자를 작동, 추가, 삭제, 쿼리할 수도 있습니다. 이름과 비밀번호는 mongoVUE에 연결되어 있습니다:

./mongo -h 192.168.0.201 --port 27017 -u test -p 123456 -d test

그러나 두 번째 방법으로 생성한 경우 위 명령을 직접 사용하면 mongo를 먼저 입력할 때만 확인에 실패했다는 메시지가 표시됩니다. 쉘은 admin 데이터베이스에 연결되어 있으며, 이후 테스트 데이터베이스로 전환 시 검증을 통과할 수 있습니다. 이것은 작은 함정입니다. 상황을 모르는 사람들은 매우 혼란 스러울 수 있습니다. 사용자 이름과 비밀번호는 분명하지만 어떤 이유로 연결할 수 없습니다.


7. mongodb3.0의 기본 데이터 저장 방법은 여전히 ​​mongodb 2.6과 동일합니다. 새로운 저장 방법으로 변경하고 시작 시 다음 매개변수를 사용해 보았습니다. 그렇지 않으면 오류가 보고됩니다.

./mongod -f /mongodb304/conf/mongodb.conf --storageEngine wiredTiger

mongodb.conf는 dbpath, logpath 등과 같은 다양한 시작 매개변수로 구성됩니다.

위 내용은 MongoDB를 일상적으로 사용하기 위한 팁과 주의사항을 요약한 내용입니다. 모든 분들께 도움이 되기를 바랍니다.


관련 권장 사항:

mongoDB 데이터베이스란 무엇입니까?

phpstudy는 MongoDB를 어떻게 확장합니까?

MongoDB의 보안을 향상하는 방법

위 내용은 MongoDB 팁 및 예방 조치 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
PHP는 사용자 세션을 어떻게 식별합니까?PHP는 사용자 세션을 어떻게 식별합니까?May 01, 2025 am 12:23 AM

phpidifiesauser의 sssessionusessessioncookiesandssessionids.1) whensession_start () iscalled, phpgeneratesauniquessessionStoredInacookienamedPhpsSessIdonSeuser 'sbrowser.2) thisidallowsphptoretrievessessionDataTromServer.

PHP 세션을 확보하기위한 모범 사례는 무엇입니까?PHP 세션을 확보하기위한 모범 사례는 무엇입니까?May 01, 2025 am 12:22 AM

PHP 세션의 보안은 다음 측정을 통해 달성 할 수 있습니다. 1. Session_REGENEREAT_ID ()를 사용하여 사용자가 로그인하거나 중요한 작업 일 때 세션 ID를 재생합니다. 2. HTTPS 프로토콜을 통해 전송 세션 ID를 암호화합니다. 3. 세션 _save_path ()를 사용하여 세션 데이터를 저장하고 권한을 올바르게 설정할 보안 디렉토리를 지정하십시오.

PHP 세션 파일은 기본적으로 어디에 저장됩니까?PHP 세션 파일은 기본적으로 어디에 저장됩니까?May 01, 2025 am 12:15 AM

phpsessionfilesarestoredInTheRectorySpecifiedBysession.save_path, 일반적으로/tmponunix-likesystemsorc : \ windows \ temponwindows.tocustomizethis : 1) austession_save_path () toSetacustomDirectory, verlyTeCustory-swritation;

PHP 세션에서 데이터를 어떻게 검색합니까?PHP 세션에서 데이터를 어떻게 검색합니까?May 01, 2025 am 12:11 AM

toretrievedatafromAphPsession, startSessionstart_start () andaccessvariblesinthe $ _sessionArray.forexample : 1) startthessession : session_start (). 2) retrievedata : $ _ session [ 'username']; echo "Welcome,". $ username;

세션을 사용하여 쇼핑 카트를 구현할 수있는 방법은 무엇입니까?세션을 사용하여 쇼핑 카트를 구현할 수있는 방법은 무엇입니까?May 01, 2025 am 12:10 AM

세션을 사용하여 효율적인 쇼핑 카트 시스템을 구축하는 단계에는 다음이 포함됩니다. 1) 세션의 정의와 기능을 이해합니다. 세션은 요청에 따라 사용자 상태를 유지하는 데 사용되는 서버 측 스토리지 메커니즘입니다. 2) 쇼핑 카트에 제품 추가와 같은 기본 세션 관리를 구현합니다. 3) 제품 수량 관리 및 삭제 지원 고급 사용으로 확장; 4) 세션 데이터를 지속하고 보안 세션 식별자를 사용하여 성능 및 보안을 최적화합니다.

PHP에서 인터페이스를 어떻게 생성하고 사용합니까?PHP에서 인터페이스를 어떻게 생성하고 사용합니까?Apr 30, 2025 pm 03:40 PM

이 기사는 PHP의 인터페이스를 생성, 구현 및 사용하는 방법을 설명하여 코드 구성 및 유지 관리에 대한 이점에 중점을 둡니다.

crypt ()와 password_hash ()의 차이점은 무엇입니까?crypt ()와 password_hash ()의 차이점은 무엇입니까?Apr 30, 2025 pm 03:39 PM

이 기사에서는 PHP의 암호 해싱에 대한 Crypt ()와 Password_hash ()의 차이점에 대해 논의하여 최신 웹 애플리케이션에 대한 구현, 보안 및 적합성에 중점을 둡니다.

PHP의 크로스 사이트 스크립팅 (XSS)을 어떻게 방지 할 수 있습니까?PHP의 크로스 사이트 스크립팅 (XSS)을 어떻게 방지 할 수 있습니까?Apr 30, 2025 pm 03:38 PM

기사는 입력 유효성 검사, 출력 인코딩 및 OWASP ESAPI 및 HTML 청정기와 같은 도구를 통해 PHP의 크로스 사이트 스크립팅 (XSS) 방지에 대해 논의합니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

PhpStorm 맥 버전

PhpStorm 맥 버전

최신(2018.2.1) 전문 PHP 통합 개발 도구

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.