수색…


통사론

  • mongodb : // [username : password @] host1 [: port1] [, host2 [: port2], ... [, hostN [: portN]]] [/ [database] [? 옵션]]

매개 변수

매개 변수 세부 묘사
hostX 선택 과목. 필요한만큼 호스트를 지정할 수 있습니다. 예를 들어 복제 세트에 연결하기 위해 여러 호스트를 지정합니다.
: portX 선택 과목. 기본값은 지정되지 않은 경우 27017입니다.
데이터 베이스 선택 과목. 연결 문자열에 인증 자격 증명이 포함 된 경우 인증 할 데이터베이스의 이름입니다. / database가 지정되지 않고 연결 문자열에 자격 증명이 포함되어 있으면 드라이버가 관리 데이터베이스에 인증됩니다.
? 옵션 연결 별 옵션

pymongo를 사용하여 MongoDB에 연결

from pymongo import MongoClient

uri = "mongodb://localhost:27017/"

client = MongoClient(uri)

db = client['test_db']
# or
# db = client.test_db

# collection = db['test_collection']
# or
collection = db.test_collection


collection.save({"hello":"world"})

print collection.find_one()

PyMongo 쿼리

collection 개체를 얻으면 쿼리는 mongo 셸에서와 동일한 구문을 사용합니다. 약간의 차이점은 다음과 같습니다.

  • 모든 키는 대괄호로 묶어야합니다. 예 :

    db.find({frequencies: {$exists: true}})
    

    pymongo 가됩니다 (대문자로 된 True 참고).

    db.find({"frequencies": { "$exists": True }})
    
  • 객체 ids 또는 ISODate 와 같은 객체는 파이썬 클래스를 사용하여 조작됩니다. PyMongo는 ObjectId 클래스를 사용하여 객체 ID를 처리하고 날짜는 표준 datetime 패키지를 사용합니다. 예를 들어 2010 년과 2011 년 사이에 모든 이벤트를 쿼리하려는 경우 다음을 수행 할 수 있습니다.

     from datetime import datetime
    
     date_from = datetime(2010, 1, 1)
     date_to = datetime(2011, 1, 1)
     db.find({ "date": { "$gte": date_from, "$lt": date_to } }):
    

PyMongo를 사용하여 컬렉션의 모든 문서 업데이트

컬렉션의 모든 문서에 필드를 추가해야한다고 가정 해 보겠습니다.

import pymongo

client = pymongo.MongoClient('localhost', 27017)
db = client.mydb.mycollection

for doc in db.find():
   db.update(
       {'_id': doc['_id']}, 
       {'$set': {'newField': 10} }, upsert=False, multi=False)

find 메소드는 for in 구문을 사용하여 쉽게 반복 할 수있는 Cursor 반환합니다. 그런 다음 update 메소드를 호출하여 _id 지정하고 필드 ( $set )를 추가합니다. 매개 변수 upsertmulti MongoDB를 출신은 ( 추가 정보를 원하시면 여기를 참조 ).



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow