zoukankan      html  css  js  c++  java
  • MongoDB投影有$slice如何只显示该字段

    简单的投影

    稍微用过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),当然就会进行投影筛选~

  • 作者:小新是也
  • 链接:http://www.cnblogs.com/chenchuxin
  • 来源:博客园
  • 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
查看全文
  • 相关阅读:
    千年不曾看懂《道德经》,直至有了《道德图》!--作者:南山空同
    初探工作流的库表设计
    教你如何快速上手markdown语法,编写技术博客(史上最全最简,用MarkDown写博客)
    面试官:你连RESTful都不知道我怎么敢要你? 文章解析
    Dapper系列 作者:懒懒的程序员一枚
    为何要编写《元灵心经》养、和、消三篇 作者 南山空同
    南山空同《学经》前24章
    ASP.NET Core 2.2 WebApi 系列【九】使用SignalR (作者:tenghao510 ) 学习及内容补充
    Net Core 中WebAPI有关 Session的设置,及获取
    asp.net core系列 WebAPI 作者:懒懒的程序员一枚
  • 原文地址:https://www.cnblogs.com/chenchuxin/p/8254149.html
  • Copyright © 2011-2022 走看看