leejd:
A simple demo of pymongo
[阅读: 1633] 2010-02-27 03:24:34
# Copyright 2009 10gen, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""A simple demo of pymongo - the Python Mongo driver.
To run this, make sure that you are running an instance of Mongo on
localhost:27017 and that you have the pymongo package installed:
$ easy_install pymongo
Then do:
$ python simple_demo.py
You should see a friendly message!
"""
import sys
import datetime
from pymongo.connection import Connection
from pymongo.errors import ConnectionFailure
# Make a connection to Mongo.
try:
connection = Connection("localhost", 27017)
except ConnectionFailure:
print "couldn't connect: be sure that Mongo is running on localhost:27017"
sys.exit(1)
# Get the database "pymongo_examples".
db = connection["pymongo_examples"]
# Drop the collection just to be sure we are starting from a clean state.
db.drop_collection("pymongo")
# Now insert some documents into the "pymongo" collection.
db.pymongo.insert({"x": 1})
# Mongo is schema-free, so we can just add more fields on the fly.
db.pymongo.insert({"x": 20, "y": 100})
# We can also save other cool things, like booleans, strings
db.pymongo.insert({"greeting": True, "hello": u"world"})
# floats and dates.
db.pymongo.insert({"name": u"mike", "account balance": 0.01, "time": datetime.datetime.utcnow()})
# The find_one method returns a single document, or None.
doc = db.pymongo.find_one({"x": 20})
assert doc["y"] == 100
# The find method returns an iterable pymongo.cursor.Cursor over all the results.
all_docs = db.pymongo.find()
sum = 0
for doc in all_docs:
sum += doc.get("x", 0)
assert sum == 21
# Get the first greeting and print it!
key = "hello"
print "%s, %s!" % (key, db.pymongo.find_one({"greeting": True})[key])
print """\
There is a lot more that you can do with Mongo and pymongo.
Check out http://www.mongodb.org for more!
"""