Разница между php и python mongodb адаптером

У меня есть код в php, который читает пример записи из mongodb:

<?php
$client = new MongoClient("mongodb://localhost:27017");
$db = $client->foo;
$collection = $db->bar;
$item = $collection->findOne();
var_dump($item);

И похожий код в Python:

import pymongo
client = pymongo.MongoClient('localhost', 27017)
db = client.foo
collection = db.bar
item = collection.find_one()
print(item)

Когда я запускаю скрипт php, я получаю ожидаемый результат:

array(11) {
'_id' => class MongoBinData#6 (2) {
public $bin => string(10) "somestring"public $type => int(3)
}
'a' => double(62051.444165621)
'b' => int(974386)
'c' => string(10) "some string"... some int, float  and string fields ...
'tags' => array(0) {}
}

Но ошибка возврата скрипта Python:

Traceback (most recent call last):
File "example.py", line 5, in <module>
item = collection.find_one()
File "/usr/local/lib/python2.7/dist-packages/pymongo/collection.py", line 724, in find_one
for result in cursor.limit(-1):
File "/usr/local/lib/python2.7/dist-packages/pymongo/cursor.py", line 1058, in next
if len(self.__data) or self._refresh():
File "/usr/local/lib/python2.7/dist-packages/pymongo/cursor.py", line 1002, in _refresh
self.__uuid_subtype))
File "/usr/local/lib/python2.7/dist-packages/pymongo/cursor.py", line 940, in __send_message
self.__compile_re)
File "/usr/local/lib/python2.7/dist-packages/pymongo/helpers.py", line 117, in _unpack_response
compile_re)
bson.errors.InvalidBSON: invalid length or type code

Почему я могу читать данные в PHP-скрипте и не могу читать данные в Python?
Можно ли прочитать эти данные в python?

0

Решение

Похоже, вы сохранили в MongoDB некоторые данные, которые PyMongo считает поврежденными, а драйвер PHP — нет. Если возможно, используйте «mongodump», чтобы выгрузить только оскорбительный документ или как можно меньше документов, и прикрепите его к новому сообщению об ошибке. Когда вы описываете проблему, пожалуйста, сообщите нам, как вы хранится данные: какая версия драйвера, какой язык программирования, какой код вы написали для создания документа. Зарегистрируйтесь и нажмите «Создать проблему» на https://jira.mongodb.org/browse/PYTHON

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]