简单的投影

稍微用过MongoDB的都知道,投影很简单,就直接

db.student.find({_id:ObjectId('5a5085aed8f10c1a6cc0395b')},{comments: 1})

添加$slice的投影

然而,当我要给comments分页($slice)如何做呢?

错误的做法

以下给出了错误的做法

db.student.find({_id:ObjectId('5a5085aed8f10c1a6cc0395b')},{comments: 1, comments:{$slice:[0,1]}})

这样写的话,就只有分页,然后字段显示全部

原因

对象中,同名字段,后者会覆盖前者。所以{comments: 1, comments: {$slice:[0,1]}}中实际生效的只有comments:{$slice:[0,1]}

同理,如果两个调换位置变成{comments: {$slice:[0,1]}, comments: 1},那么实际生效的就是 comments: 1没有分页

正确的写法

多写一个随意的字段(不跟已有的字段已有)可以做到,具体原理求告知

db.student.find({_id:ObjectId('5a5085aed8f10c1a6cc0395b')}, {comments:{$slice:[0,1]},  xxx:1})

简单的投影

稍微用过MongoDB的都知道,投影很简单,就直接

db.student.find({_id:ObjectId('5a5085aed8f10c1a6cc0395b')},{comments: 1})

添加$slice的投影

然而,当我要给comments分页($slice)如何做呢?

错误的做法

以下给出了错误的做法

db.student.find({_id:ObjectId('5a5085aed8f10c1a6cc0395b')},{comments: 1, comments:{$slice:[0,1]}})

这样写的话,就只有分页,然后字段显示全部

原因

对象中,同名字段,后者会覆盖前者。所以{comments: 1, comments: {$slice:[0,1]}}中实际生效的只有comments:{$slice:[0,1]}

同理,如果两个调换位置变成{comments: {$slice:[0,1]}, comments: 1},那么实际生效的就是 comments: 1没有分页

正确的写法

多写一个随意的字段(不跟已有的字段已有)可以做到

db.student.find({_id:ObjectId('5a5085aed8f10c1a6cc0395b')}, {comments:{$slice:[0,1]},  xxx:1})

_id怎么样都会显示,随意乱写不好,统一用_id吧

db.student.find({_id:ObjectId('5a5085aed8f10c1a6cc0395b')}, {comments:{$slice:[0,1]},  _id:1})

原理

被slice的字段一定会显示,加上其他的字段(例如_id),当然就会进行投影筛选~

MongoDB投影有$slice如何只显示该字段的更多相关文章

  1. jsp隐藏关键 敏感信息,只显示前后字段

    今天写jsp页面,要求对字段中间部分隐藏,只显示前几位和后几位.搜了一下发现网上大都是隐藏前面指定字段,或者是利用正则表达式隐藏手机号或是身份证.这样的话必须预先知道字段长度,而我不想知道长度只显示前 ...

  2. mongodb查询只显示指定字段

    db.COMMODITY_COMMODITY.find( { "areaCode" : "320100" , "backCatalogId" ...

  3. MongoDB 投影

    mongodb 投影意思是只选择必要的数据而不是选择一个文件的数据的整个.例如一个文档有5个字段,只需要显示其中3个 find() 方法 在MongoDB中,当执行find()方法,那么它会显示一个文 ...

  4. MongoDB (九) MongoDB 投影

    mongodb 投影意思是只选择必要的数据而不是选择一个文件的数据的整个.如果一个文档有5个字段,需要显示只有3个,然后选择其中只有3个字段. find() 方法 MongoDB 的find()方法, ...

  5. 【Mongodb教程 第十四课 】MongoDB 投影

    mongodb 投影意思是只选择必要的数据而不是选择一个文件的数据的整个.如果一个文档有5个字段,需要显示只有3个,然后选择其中只有3个字段. find() 方法 MongoDB 的find()方法, ...

  6. JS控制文字只显示两行,超出部分显示省略号

    由于使用css控制文字只显示多行,超出部分显示省略号,存在一定的兼容性问题,所以总结了一下网上一些大咖使用js实现控制行数的解决方案. 第一步:依次引入jquery.js+jquery.ellipsi ...

  7. win7系统的右键菜单只显示一个白色框不显示菜单项 解决办法

    如上图所示,桌面或其他大部分地方点击右键菜单,都只显示一个白色框,鼠标移上去才有菜单项看,并且效果很丑 解决办法: 计算机-右键-属性-高级-性能-设置-视觉效果-淡入淡出或滑动菜单到视图,将其前面的 ...

  8. AD域-让共享目录只显示用户有权限访问的文件夹

    问题: 在AD域中,我们一般都会用到共享,如果有很多部门,我们可能还会按部门.职位配置权限.比如CSD,IT,PA等,但文件夹一多,用户看着就头大,而且用户没权限访问的文件夹误点击进去还会提示无权限访 ...

  9. 关于datepicker只显示年、月、日的设置

    关键时侯,还得看官方文档.花了半个多小时,找了网上一大堆答复,然后一一验证,90%没有能解决问题. 先给出官方文档的URL: http://bootstrap-datepicker.readthedo ...

随机推荐

  1. Linux常见命令(系统命令)

    1.查看主机名hostname 2.修改主机名(重启后无效)hostname hadoop 3.修改主机名(重启后永久生效)vi /etc/sysconfig/network[hostname=had ...

  2. python3之File文件方法

    1.读写文件 open()将会返回一个file对象,基本语法: open(filename,mode) filename:是一个包含了访问的文件名称的路径字符串 mode:决定了打开文件的模式:只读, ...

  3. Pandas系列之入门篇

    Pandas系列之入门篇 简介 pandas 是 python用来数据清洗.分析的包,可以使用类sql的语法方便的进行数据关联.查询,属于内存计算范畴, 效率远远高于硬盘计算的数据库存储.另外pand ...

  4. 86、flask之一些凌乱知识点

    本篇导航: session组件 上下文与内置函数 pymysql问题 模版问题 一.session组件 1.session组件简介 flask-session是flask框架的session组件,由于 ...

  5. shiro真正项目中的实战应用核心代码!!!

    欢迎转载!!!请注明出处!!! 说道shiro的学习之路真是相当坎坷,网上好多人发的帖子全是简单的demo样例,核心代码根本没有,在学习过程中遇到过N多坑. 经过自己的努力,终于整出来了,等你整明白之 ...

  6. JAXB应用实例

    过往的项目中数据存储都离不开数据库,不过最近做的一个项目的某些数据(比如人员信息.菜单.权限等等)却完全没有涉及任何数据库操作,直接XML搞定.这里无意比较优劣,因为数据库存储和XML存储本就有不同的 ...

  7. Eclipse卡顿,内存猛增解决方案

    本文转载自http://rsy.iteye.com/blog/2095668/ PS:所有校验都去除后,对如下版本来说,内存一直猛增,解决办法参照上放博客:修改项目的.project文件,特此备注记录 ...

  8. burpsuite截断绕过前端限制上传一句话

    设置代理,这里就不说了 打开上传界面 burpsuite开启拦截,上传lurp.hpg 在burp找到上传文件的格式改回原来一句话的格式 上传= =

  9. cs231n spring 2017 lecture6 Training Neural Networks I 听课笔记

    1. 激活函数: 1)Sigmoid,σ(x)=1/(1+e-x).把输出压缩在(0,1)之间.几个问题:(a)x比较大或者比较小(比如10,-10),sigmoid的曲线很平缓,导数为0,在用链式法 ...

  10. 2017"百度之星"程序设计大赛 - 复赛1001&&HDU 6144 Arithmetic of Bomb【java大模拟】

    Arithmetic of Bomb Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...