summaryrefslogtreecommitdiff
path: root/examples/mongodb/client.py
diff options
context:
space:
mode:
authorMicah Anderson <micah@riseup.net>2014-11-11 11:53:55 -0500
committerMicah Anderson <micah@riseup.net>2014-11-11 11:53:55 -0500
commit7d5c3dcd969161322deed6c43f8a6a3cb92c3369 (patch)
tree109b05c88c7252d7609ef324d62ef9dd7f06123f /examples/mongodb/client.py
parent44be832c5708baadd146cb954befbc3dcad8d463 (diff)
upgrade to 14.4.1upstream/14.4.1
Diffstat (limited to 'examples/mongodb/client.py')
-rw-r--r--examples/mongodb/client.py46
1 files changed, 46 insertions, 0 deletions
diff --git a/examples/mongodb/client.py b/examples/mongodb/client.py
new file mode 100644
index 0000000..839dce7
--- /dev/null
+++ b/examples/mongodb/client.py
@@ -0,0 +1,46 @@
+#-----------------------------------------------------------------------------
+# Copyright (c) 2010 Justin Riley
+#
+# Distributed under the terms of the New BSD License. The full license is in
+# the file COPYING.BSD, distributed as part of this software.
+#-----------------------------------------------------------------------------
+
+import json
+import zmq
+
+class MongoZMQClient(object):
+ """
+ Client that connects with MongoZMQ server to add/fetch docs
+ """
+
+ def __init__(self, connect_addr='tcp://127.0.0.1:5000'):
+ self._context = zmq.Context()
+ self._socket = self._context.socket(zmq.DEALER)
+ self._socket.connect(connect_addr)
+
+ def _send_recv_msg(self, msg):
+ self._socket.send_multipart(msg)
+ return self._socket.recv_multipart()[0]
+
+ def get_doc(self, keys):
+ msg = ['get', json.dumps(keys)]
+ json_str = self._send_recv_msg(msg)
+ return json.loads(json_str)
+
+ def add_doc(self, doc):
+ msg = ['add', json.dumps(doc)]
+ return self._send_recv_msg(msg)
+
+def main():
+ client = MongoZMQClient()
+ for i in range(10):
+ doc = {'job': str(i)}
+ print "Adding doc", doc
+ print client.add_doc(doc)
+ for i in range(10):
+ query = {'job': str(i)}
+ print "Getting doc matching query:", query
+ print client.get_doc(query)
+
+if __name__ == "__main__":
+ main()