Consulta de MongoDB / Pymongo con Datetime

Estoy intentando recuperar los datos que he insertado en mongodb a través de pymongo.

Mi código para insertar está debajo (después de analizar a través de expresiones regulares)

if connection is not None: db.model.insert({"time": datetime.datetime(int(int3), int(int1), int(int2), int(int4), int(int5), int(int6), int(int7))}) 

Entonces entré dos puntos de datos en la shell.

 >>> start = datetime.datetime(2012, 2, 2, 6, 35, 6, 764) >>> end = datetime.datetime(2012, 2, 2, 6, 55, 3, 381) 

Luego intenté consultar el rango de datos entre estos dos puntos de datos y recibí lo que se devuelve.

 >>> db.wing_model.find({'time': {'$gte': start, '$lt': end}})  >>> db.wing_model.find({'time': {'$gte': start, '$lt': end}})  

Los datos se enumeran a continuación.

 [02/02/2012 06:32:07.334][INFO] [02/02/2012 06:32:07.334][INFO] [02/02/2012 06:32:07.334][INFO] [02/02/2012 06:32:13.711][INFO] [02/02/2012 06:32:13.711][INFO] [02/02/2012 06:32:13.711][INFO] [02/02/2012 06:32:22.473][INFO] [02/02/2012 06:32:22.473][INFO] [02/02/2012 06:32:22.473][INFO] [02/02/2012 06:35:06.764][INFO] [02/02/2012 06:35:06.765][INFO] [02/02/2012 06:35:06.765][INFO] [02/02/2012 06:54:52.008][INFO] [02/02/2012 06:54:52.008][INFO] [02/02/2012 06:54:52.008][INFO] [02/02/2012 06:54:59.512][INFO] [02/02/2012 06:54:59.512][INFO] [02/02/2012 06:54:59.512][INFO] [02/02/2012 06:55:03.381][INFO] [02/02/2012 06:55:03.381][INFO] [02/02/2012 06:55:03.381][INFO] [02/02/2012 06:55:06.142][INFO] [02/02/2012 06:55:06.142][INFO] [02/02/2012 06:55:06.142][INFO] [02/02/2012 06:55:09.652][INFO] [02/02/2012 06:55:09.652][INFO] [02/02/2012 06:55:09.652][INFO] [02/02/2012 06:55:13.396][INFO] [02/02/2012 06:55:13.396][INFO] 

¿Cómo obtengo mi consulta para devolver todo entre los datos de ‘inicio’ y ‘final’?

Además, ¿cómo recibo esto en una forma inteligible?

Finalmente, ¿por qué la misma consulta devuelve diferentes ubicaciones de objetos de cursor?

Gracias.

Repetir documentación tutorial básica existente:

 start = datetime.datetime(2012, 2, 2, 6, 35, 6, 764) end = datetime.datetime(2012, 2, 2, 6, 55, 3, 381) for doc in db.wing_model.find({'time': {'$gte': start, '$lt': end}}): print doc 

Finalmente, ¿por qué la misma consulta devuelve diferentes ubicaciones de objetos de cursor?

¿Dónde debería ser ese el caso?

Verá dos instancias de cursor diferentes que probablemente devolverán el mismo conjunto de resultados, o?

 @staticmethod def _get_results_to_json(data): """Get documents from a MongoDB search result. Transforms MongoDB BSON documents into JSON serializable documents. This process converts the ObjectIds into hexadecimal strings. Parameters ---------- data : `~pymongo.cursor.Cursor` A MongoDB search result. Returns ------- |list| of |dict| A list of JSON serializable documents. """ if isinstance(data, Cursor): data = list(data) if isinstance(data, list): for doc in data: doc['_id'] = str(doc['_id']) elif isinstance(data, dict): data['_id'] = str(data['_id']) return data _get_results_to_json(db.wing_model.find({'time': {'$gte': start, '$lt': end}}))