MongoDB查询操作限制返回字段的解决方案

Posted 请叫我东子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongoDB查询操作限制返回字段的解决方案相关的知识,希望对你有一定的参考价值。

映射(projection )声明用来限制所有查询匹配文档的返回字段。projection以文档的形式列举结果集中要包含或者排除的字段。可以指定要包含的字段(例如: {field:1})或者指定要排除的字段(例如:{field:0})。默认_id是包含在结果集合中的,要从结果集中排除_id字段,需要在 projection中指定排除_id字段({_id:0})。除了_id字段,不能在一个projection中联合使用包含和排除语意。

1 返回匹配文档的所有字段:

如果没有指定projection,find()方法返回所有匹配文档的所有字段。
代码如下:

db.inventory.find(  type: 'food'  )

这个例子将返回inventory集合中type字段的值为"food"的所有文档,返回的文档包含全部字段。

2.返回指定字段和_id字段:

一个projection可以明确地指定多个字段。下面的操作中,find()方法返回匹配的所有文档。在结果集中,只有item和qty字段,默认_id字段也是返回的。
代码如下:

db.inventory.find(  type: 'food' ,  item: 1, qty: 1  )

3. 仅返回指定字段:

可以通过在projection中指定排除_id字段将其从结果中去掉,如下例子所示:
代码如下:

db.inventory.find(  type: 'food' ,  item: 1, qty: 1, _id:0  )

4.返回除排除掉以外的字段:

可以使用一个projection排除一个或者一组字段,如下:
代码如下:

db.inventory.find(  type: 'food' ,  type:0  )

这个操作返回所有type字段值为food的文档,在结果中type字段不返回。

以上是关于MongoDB查询操作限制返回字段的解决方案的主要内容,如果未能解决你的问题,请参考以下文章

求助啊,tp下,mongodb如何查询后只返回某个字段值

关于php查询mongodb限制返回字段的问题

MongoDB-5: 查询(游标操作游标信息)

mongodb 没有则插入,有则更新其中某列

php操作mongodb时字段不为空怎么写

c#操作mongodb部分更新实体字段问题,求助高手