|
| 1 | +``` |
| 2 | +docker run -d -p 27017:27017 --rm --name mongo mongo:3.6.5-jessie |
| 3 | +docker exec -it mongo sh |
| 4 | +apt update && apt install wget python python-setuptools && easy_install pip -y |
| 5 | +wget https://raw.githubusercontent.com/steveren/docs-assets/charts-tutorial/movieDetails.json |
| 6 | +pip install pymongo mongoengine |
| 7 | +mongoimport --db test --collection movieDetails --drop --file movieDetails.json |
| 8 | +``` |
| 9 | + |
| 10 | +``` |
| 11 | +from pymongo import MongoClient |
| 12 | +client = MongoClient() |
| 13 | +>>> db = client['test'] |
| 14 | +>>> collection = db['movieDetails'] |
| 15 | +>>> collection.find_one() |
| 16 | +{u'tomato': {u'rating': 9.0, u'userReviews': |
| 17 | +``` |
| 18 | + |
| 19 | +``` |
| 20 | +>>> import mongoengine |
| 21 | +>>> mongoengine.connect('test', host='mongodb://localhost:27017/test') |
| 22 | +>>> class Movie(mongoengine.Document): |
| 23 | +... meta = {'collection': 'movieDetails'} |
| 24 | +... title = mongoengine.StringField() |
| 25 | +... year = mongoengine.IntField() |
| 26 | +... rated = mongoengine.StringField() |
| 27 | +... runtime = mongoengine.IntField() |
| 28 | +... countries = mongoengine.ListField() |
| 29 | +... genres = mongoengine.ListField() |
| 30 | +... director = mongoengine.StringField() |
| 31 | +... writers = mongoengine.ListField() |
| 32 | +... actors = mongoengine.ListField() |
| 33 | +... plot = mongoengine.StringField() |
| 34 | +... poster = mongoengine.StringField() |
| 35 | +... imdb = mongoengine.EmbeddedDocumentField(Imdb) |
| 36 | +... tomato = mongoengine.EmbeddedDocumentField(Tomato) |
| 37 | +... metacritic = mongoengine.IntField() |
| 38 | +... awards = mongoengine.EmbeddedDocumentField(Awards) |
| 39 | +... type = mongoengine.StringField() |
| 40 | +
|
| 41 | +>>> Movie.objects.first() |
| 42 | +<Movie: Movie object> |
| 43 | +>>> movie.actors |
| 44 | +[u'Claudia Cardinale', u'Henry Fonda', u'Jason Robards', u'Charles Bronson'] |
| 45 | +>>> movie.to_json() |
| 46 | +'{"_id": {"$oid": "5b107bec1d2952d0da9046e0"}, "title": "Once Upon a Time |
| 47 | +
|
| 48 | +>>> Movie.objects(year__lte=1988) |
| 49 | +[<Movie: Movie object>, <Movie: |
| 50 | +
|
| 51 | +>>> Movie.objects(year__lte=1988)[0] |
| 52 | +<Movie: Movie object> |
| 53 | +>>> Movie.objects(year__lte=1988)[0].actors |
| 54 | +[u'Claudia Cardinale', u'Henry Fonda', u'Jason Robards', u'Charles Bronson'] |
| 55 | +>>> Movie.objects(imdb__rating__gte=9) |
| 56 | +[<Movie: Movie object>, <Movie: Movie object>, |
| 57 | +>>> Movie.objects(imdb__rating__gte=9)[0] |
| 58 | +<Movie: Movie object> |
| 59 | +>>> Movie.objects(imdb__rating__gte=9)[0].title |
| 60 | +u'Gamechangers Ep. 3: A Legend in the Booth' |
| 61 | +>>> Movie.objects(title__contains='Love') |
| 62 | +[<Movie: Movie object>, <Movie: Movie object>, |
| 63 | +>>> [a.title for a in Movie.objects(title__contains='Love')] |
| 64 | +[u'Dr. Strangelove or: How I Learne |
| 65 | +>>> [a.actors for a in Movie.objects(title__contains='Love') if a.title == 'Shakespeare in Love'] |
| 66 | +[[u'Geoffrey Rush', u'Tom Wilkinson', |
| 67 | +
|
| 68 | +>>> Movie.objects.count() |
| 69 | +>>> Movie.objects(actors__size=2) |
| 70 | +``` |
| 71 | + |
| 72 | +- https://docs.mongodb.com/charts/master/tutorial/movie-details/prereqs-and-import-data/ |
0 commit comments