我的 Backbone 应用程序正在与构建在 MongoDB 之上的 REST API 进行通信,因此我的对象的“自然”ID 确实是MongoIDs
. 当序列化为 JSON 时,它们看起来像:
"_id":{"$id":"505099e998dee4db11000001"}
Backbone 文档提到,您可以为 Backbone 模型的 id 属性指定其他名称(id
使用idAttribute
),但是,由于 MongoID 的字符串表示是嵌套的,因此仅使用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']);
但这正是我想要避免的!