Skip to content

Conversation

@Xiaokeai11
Copy link

@Xiaokeai11 Xiaokeai11 commented Apr 18, 2018

import pymongo
from pymongo import MongoClient

client = MongoClient()
database = client.test
collection = database.movies

cursor = collection.find({"genres": "Drama", "rated": "NOT RATED"})
number = collection.find({"genres": "Drama"}).count()
print('before updating: %d' %(number))

#A
#update database
for doc in cursor:
collection.update({"_id": doc["_id"]},{'$set':{"rated":"Pending rating"}})

#check status
number = collection.find({"genres": "Drama", "rated": "NOT RATED"}).count()
print('after updating: %d' %(number))

#B
collection.insert_one({"title": "Baby Boom","year": 1987, "countries": ["United States"],"genres": ["Drama", "Comedy", "Romance"], "directors": ["Charles Shyer"], "imdb": {"id":8888888, "rating":10.0, "votes":152}})
collection.find({"title" : "Your mom boom", "genres" : "Drama"})

#C
collection.aggregate([{ '$match' : {'genres' : "Drama"} }, { '$group' : {'_id': "Drama", 'count': {'$sum': 1}}}])

#D
result = collection.aggregate([{'$match':{"countries" : "Hungary", "rated" : "Pending rating"}},{'$group':{"count":{'$sum': 1}, "_id" : {"countries" : "Hungary", "rating": "Pending rating"}}}])
print(list(result))

#E
database.test2.insert({'name':'Liuqing Yang', 'age':'22'})
database.test3.insert({'name':'Liuqing Yang', 'age':'22'})

database.test2.insert({'name':'Liuqing Yang', 'age':'22'})
database.test3.insert({'name':'Liuqing Yang', 'age':'22'})

result = database.test2.aggregate([{'$lookup':{'from': 'test3', 'localField':'name', 'foreignField': 'name', 'as': 'result'}}])
print(list(result))

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants