考虑集“水果”,其中我有这个文件(我使用Python的pymongo驱动程序,顺便说一句):
{
'_id' : 'lemons',
'weight' : 58,
'shape' : 'oval',
'countries' : ['Mexico', 'Turkey', 'Argentina', 'SAfrica', 'US']
}
现在,如果我想只拿到了“国家”字段,此查询工作得很好:
In [1]: find_one('lemons', { 'countries' : 1, '_id' : 0 })
Out[1]: {u'countries': [u'Mexico', u'Turkey', u'Argentina', u'SAfrica', u'US']}
但事实证明,我真正需要的只是少数顶级的国家名单,不是所有的人,所以我用,而不是简单的真/ 1“$切片”:
In [239]: c.find_one('lemons', { 'countries' : { '$slice' : [0, 3] }, '_id' : 0 })
Out[239]:
{u'countries': [u'Mexico', u'Turkey', u'Argentina'],
u'shape': u'oval',
u'weight': 58}
那么,国家的数量已经萎缩,但现在它给了我一大堆其他无关的信息!
问:有什么办法可以只显示那些我要求的字段? 另外,一个商家“_id”作为例外是好的,因为这一领域始终呈现,但我不能肯定其他领域,因为MongoDB是计划少,我打算使用此功能,如果需要添加额外的字段。