我正在尝试编写一些宁静的Web API,我有一个名为社区的集合,它有大约10个字段。但在我的GetCommunityAPI调用中,我只想将必要的信息传递给移动设备。
我已经提到了这个blog example,这提出了以下MongoDB查询
$db->users->find({}, {username => 1});
我把我的Mongoid搜索写成
@result=@result.find({},{:username=>1})
但是这给了我一个错误,它无法找到id = {}
的有效文档我也试过
@result=@result.only({:username=>1})
但是不是仅返回用户名,而是返回使其他字段为空的所有内容。
{"_id":"534186e5414fc34bc5000002","ad":null,"ae":null,"cat":null...and so on}
我的问题是,为了使API调用最有效。消耗最少量的移动数据是可以发送以下格式从MongoDB获取数据
{"_id":"534186e5414fc34bc5000002"}
这种方法会使我的所有API仅发送有效信息,并且对移动网络友好。因为我期望在单个API调用中有大约1000个对象。
还可以以这种格式获取输出吗?
[{"_id":"534186e5414fc34bc5000002","un":"Name"},{"_id":"534186e5414fc34bc5000003","un":"Dummy"}]
答案 0 :(得分:0)
使用mongo本身,它将返回null
个值。您是否尝试在mongoid 3中使用pluck
方法?
Collection.all.pluck(:username)