Browse Source

week11

master
RinRi 1 year ago
parent
commit
a55bd60724
1 changed files with 119 additions and 0 deletions
  1. +119
    -0
      week11/query.py

+ 119
- 0
week11/query.py View File

@@ -0,0 +1,119 @@
from pymongo import MongoClient
import datetime

client = MongoClient("mongodb://localhost")
db = client['test']


def ex1():
cursor = db.restaurants.find({'cuisine': 'Irish'})
print(len(list(cursor)))

cursor = db.restaurants.find({'cuisine': 'Russian'})
print(len(list(cursor)))

cursor = db.restaurants.find({
'$or': [{'cuisine': 'Irish'}, {'cuisine': 'Russian'}]})
cursor_list = list(cursor)
print(len(cursor_list))

cursor = db.restaurants.find({
'address.building': '284',
'address.street': 'Prospect Park West',
'address.zipcode': '11215'})
print(list(cursor))


def atomic_insert_bestrest():
bestrest = {
'address': {
'building': '126',
'coord': [-73.9557413, 40.7720266],
'street': 'Sportivnaya',
'zipcode': '420500' },
'borough': 'Innopolis',
'cuisine': 'Serbian',
'name': 'The Best Restaurant',
'restaurant_id': '41712354',
'grades': [{
'date': datetime.datetime(2023, 4, 4, 0, 0),
'grade': 'A',
'score': 11
}]
}

db.restaurants.delete_many({'restaurant_id': '41712354'})

db.restaurants.insert_one(bestrest)

cursor = db.restaurants.find({'restaurant_id': '41712354'})
print(list(cursor))


def delete_brooklyn1_ThaiN():
db.restaurants.delete_one({'borough': 'Brooklyn'})
db.restaurants.delete_many({'cuisine': 'Thai'})


def insert_random_item_for_ex4():
bestrest = {
'address': {
'building': '126',
'coord': [-73.9557413, 40.7720266],
'street': 'Prospect Park West',
'zipcode': '177013' },
'borough': 'Innopolis',
'cuisine': 'Serbian',
'name': 'The Best Restaurant',
'restaurant_id': '177013123',
'grades': [{
'date': datetime.datetime(2023, 4, 4, 0, 0),
'grade': 'B',
'score': 11
}]
}

db.restaurants.delete_many({'restaurant_id': '177013123'})

db.restaurants.insert_one(bestrest)


def ex4():
cursor = db.restaurants.find({
'address.street': 'Prospect Park West'
})
restaurants = list(cursor)

for restaurant in restaurants:
cnt = 0
for grade in restaurant['grades']:
if grade['grade'] == 'A':
cnt = cnt + 1
if cnt >= 1:
result = db.restaurants.delete_one({'restaurant_id': restaurant['restaurant_id']})
print(f'Deleted {result.deleted_count} items')
else:
result = db.restaurants.update_one(
{'restaurant_id': restaurant['restaurant_id']},
{'$push': {
'grades': {
'date': datetime.datetime.utcnow(),
'grade': 'A',
'score': 11
}
}})
print('Modified:')
print(list(db.restaurants.find({'restaurant_id': restaurant['restaurant_id']})))


def main():
ex1()
atomic_insert_bestrest()
delete_brooklyn1_ThaiN()
insert_random_item_for_ex4()
ex4()


if __name__ == "__main__":
main()

Loading…
Cancel
Save