Приложение My Backbone взаимодействует с REST API, созданным на основе MongoDB, поэтому "естественные" идентификаторы объектов действительно MongoIDs
. После сериализации в JSON они выглядят так:
"_id":{"$id":"505099e998dee4db11000001"}
В документации Backbone упоминается, что вы можете указать другое имя, чем id
для вашего идентификатора идентификатора модели Backbone (используя idAttribute
), однако, поскольку строка MongoIDs представления вложены, просто использование idAttribute: '_id'
не помогает напрямую использовать JSON.
Есть ли способ обойти это, кроме переписывания атрибутов на стороне сервера?
Обновление:
Вот что я делаю на стороне сервера:
$m = new Mongo();
$posts = $m->mydatabase->posts->find();
$out = array();
foreach ($posts as $post) {
$out[] = $post;
}
echo json_encode($out);
Я знаю, что могу сделать что-то вроде $post['id'] = (string) $post['_id']; unset($post['_id']);
, но это именно то, чего я хочу избежать!