背景资料
我之前的问题(在 Eve 中,如何创建集合的子资源并保留父集合端点?)的答案是使用多个端点,这是 Eve 的一个数据源功能。在 IRC 频道中,我正在与 cuibonobo 交谈,她能够通过将 game_id 更改为 objectid 而不是字符串来实现这一点,如下所示:
http://gist.github.com/uunsamp/d969116367181bb30731
然而,我没有得到这个工作,正如你从对话中看到的那样,我以不同的方式将文档放入集合中:
14:59 <cuibonobo> 没有。只是因为你之前的设置文件将游戏ID保存为字符串,所以查找不起作用
15:00 <cuibonobo> 它仅适用于将 game_id 保存为 ObjectId 的文档
15:01 <cuibonobo> Eve 当前的工作方式,如果你将类型设置为 'objectid',它会在将字符串保存到数据库之前将其转换为 Mongo ObjectId。但是字符串不会发生这种转换
15:02 <znn> 我没有使用 eve 来存储对象
15:02 <znn> 我一直在使用 mongo shell 接口插入项目
15:03 <cuibonobo> 哦。唔。这可能会使事情复杂化。Eve 在插入文档之前会进行类型转换和其他工作。
15:04 <cuibonobo> 所以一般不建议直接将东西插入 mongo
导致我进入stackoverflow的问题 :)
使用 http 方法 POST 和使用 mongo shell 将文档插入集合有什么区别?用户最终能否使用任何一种文档插入方法?
额外的信息
在问这个问题之前,我正在浏览http://github.com/nicolaiarocci/eve/blob/develop/eve/methods/post.py,但这可能需要一段时间才能理解,比仅仅询问可能更多的人要长得多比我自己熟悉代码。