Команды pymongo в MongoDB

# установка pymongo
sudo apt-get install build-essential python-dev
pip install pymongo

import pymongo
from pymongo import MongoClient

# подключения на хост и порт по умолчанию
client = MongoClient()
# выбор и подключение к базе
db = client.test_database

# посмотреть версию
mongod --version

#-------------------------------------------

# Получить 5 случайных документов из коллекции
x = db["coll"].aggregate( [ { "$sample": {"size": 5} } ] )
for s in x:
    print(s)

# получить список баз
# подключения на хост и порт по умолчанию
client = MongoClient()
print(client.database_names())

# получить все коллекции из базы
collection = db.collection_names(include_system_collections=False)
for collect in collection:
    print (collect)

# только уникальные строки
db.xxx.create_index([('name', pymongo.ASCENDING)], unique=True)

# Удалить БД, если она существует
connection.drop_database("test_database")

# Удалить коллекцию
 db.final.drop()

# Добавление документов в колекцию 'users'
db.users.save( { 'name':'user 1', 'level':1 } )
db.users.save( { 'name':'user 2', 'level':2 } )
db.users.insert( { 'name':'user 3', 'level':3 } )
# или так
db["users"].insert( { 'name':'user 3', 'level':3 } )

# Полное имя колекции
print (db.users.full_name)

# Получить все документы
for user in db.users.find():
    print user

# лимит
for data in db.myusers.find().limit(2):
    print data

# Выбрать конкретные атрибуты
users = db.users.find({},{ 'login':1, 'name':1 })

# Получить один документ по условию
user = db.users.find_one({'name':'user 1'})
# или так
keyword = "значение1"
host_name = "имя_коллекции"
x = db[host_name].find_one({'keyword':keyword})
print (x["keyword"])

# Получить/установить значение
print user['level']
user['level'] = 7
# Сохранить документ
db.users.save(user)

# Удалить документ
db.users.remove(user)

# Установить значение в документе
db.users.update({ 'name':'user 2' }, { "$set": { 'level':5 } })

# Кол-во документов
print 'Count',db.users.count()
print 'Count lvl=2',db.users.find({'level':2}).count()

# Сортировка
for user in db.users.find().sort('level'):
    print user
# в обратном порядке: .sort('level',pymongo.DESCENDING)
# Сортировка по нескольким атрибутам
    db.users.find({}).sort( [('status',1),('level',-1)] )

# Ограничение выборки, пропустить один документ и выбрать не более двух
for user in db.users.find().skip(1).limit(2):
    print user

# Условия
for user in db.users.find().where('this.name == "user 2" || this.level>3'):
    print user

# Выбрать неповторяющиеся записи
for user in db.users.distinct('level'):
    print user

# Поиск регулярным выражением
import re
regex = re.compile('^us', re.I | re.U)
result = db.collection.find({ 'name':regex })

# вставка даты и время
import datetime
db["11111"].insert({'date': datetime.datetime.utcnow()})
x = db["11111"].find_one()
print(x)
# вставка измененной даты и время
# год, месяц, день, часы, минуты, секунды, мл-секунды
x = datetime.datetime(2015, 7, 8, 18, 17, 28, 324000)
#или так
x = datetime.datetime(2015, 7, 8)
print(x)

# получить записи с конца
# выбираем все и сортируем по _id
#x = db["ru"].find({}).sort("_id", -1).limit(3)
# выбираем по условию и сортируем по last_modified
x = db["ru"].find({"flag":"y"}).sort("last_modified", -1).limit(3)
for s in x:
    print(s["ip"])

Комментариев нет:

Отправить комментарий