pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

<i id='RqRun'><tr id='RqRun'><dt id='RqRun'><q id='RqRun'><span id='RqRun'><b id='RqRun'><form id='RqRun'><ins id='RqRun'></ins><ul id='RqRun'></ul><sub id='RqRun'></sub></form><legend id='RqRun'></legend><bdo id='RqRun'><pre id='RqRun'><center id='RqRun'></center></pre></bdo></b><th id='RqRun'></th></span></q></dt></tr></i><div class="o886v72" id='RqRun'><tfoot id='RqRun'></tfoot><dl id='RqRun'><fieldset id='RqRun'></fieldset></dl></div>

    1. <legend id='RqRun'><style id='RqRun'><dir id='RqRun'><q id='RqRun'></q></dir></style></legend>
      • <bdo id='RqRun'></bdo><ul id='RqRun'></ul>

      <small id='RqRun'></small><noframes id='RqRun'>

      <tfoot id='RqRun'></tfoot>

      查詢依賴于 mongodb 中其他文檔值的文檔

      query documents that depend on values of other documents in mongodb(查詢依賴于 mongodb 中其他文檔值的文檔)

      • <small id='WFpok'></small><noframes id='WFpok'>

        <tfoot id='WFpok'></tfoot>
        <legend id='WFpok'><style id='WFpok'><dir id='WFpok'><q id='WFpok'></q></dir></style></legend>
          <tbody id='WFpok'></tbody>
          <bdo id='WFpok'></bdo><ul id='WFpok'></ul>
            • <i id='WFpok'><tr id='WFpok'><dt id='WFpok'><q id='WFpok'><span id='WFpok'><b id='WFpok'><form id='WFpok'><ins id='WFpok'></ins><ul id='WFpok'></ul><sub id='WFpok'></sub></form><legend id='WFpok'></legend><bdo id='WFpok'><pre id='WFpok'><center id='WFpok'></center></pre></bdo></b><th id='WFpok'></th></span></q></dt></tr></i><div class="ulzneo3" id='WFpok'><tfoot id='WFpok'></tfoot><dl id='WFpok'><fieldset id='WFpok'></fieldset></dl></div>

                本文介紹了查詢依賴于 mongodb 中其他文檔值的文檔的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

                問題描述

                想象下面的貓鼬模型:

                const UserSchema = Schema({
                  //_id: ObjectId,
                  //more fields,
                  blockedIds: [{
                    type: ObjectId,
                    ref: 'User'
                  }]
                })
                

                獲取與某個 _id 的用戶的阻塞 ID 不匹配的所有用戶的最有效方法是什么?

                What is the most efficient way to get all users that don't match the blockedIds of an user with a certain _id?

                一種天真的方法是執行兩個查詢:

                A naive way would be to to perform two queries:

                User.findById(id).then(user => {
                  return User.find({_id: {$nin: user.blockedIds}})
                })
                

                是否可以使用聚合框架和 $facets 在一個查詢中完成?

                Is it possible to use the aggregation framework and $facets to accomplish that in one query?

                推薦答案

                試試 non-correlated 來自 3.6 的子查詢,用于您的用例.

                Try non-correlated sub query from 3.6 for your use case.

                有點像

                User.aggregate(
                 [{$lookup:{
                   from: "users",
                   pipeline:[
                    {$match: {_id:mongoose.Types.ObjectId(id)}},
                    {$project: {_id:0,blockedIds:1}}
                   ],
                   as: "noncr"
                 }},
                 {$match:{
                   $expr:{
                     $not:[
                      {$in:[
                        $_id,
                        {$arrayElemAt:["$noncr.blockedIds",0]}
                      ]}
                    ]
                  }
                }},
                {$project:{noncr:0}}]
                )
                

                $lookup 為輸入 ID 拉入blockedIds",然后是 $match 過濾_id"不在blockedIds列表中的文檔.

                $lookup to pull in the "blockedIds" for input id followed by $match to filter the documents where "_id" is not in list of blockedIds.

                $expr 允許在 $match 階段使用聚合比較運算符.

                $expr allows use of aggregation comparison operators in $match stage.

                $arrayElemAt 從 $lookup 數組中獲取第一個元素.

                $arrayElemAt to fetch the first element from $lookup array.

                $in 將_id 與blockedIds 進行比較.

                $in to compare the _id against blockedIds.

                $project 排除以從最終響應中刪除noncr"字段.

                $project with exclusion to remove the "noncr" field from the final response.

                請注意,當您測試查詢時,在查找階段的from"屬性中使用集合名稱而不是模型或模式名稱.

                Please note when you test query use the collection name not model or schema name in "from" attribute of look up stage.

                這篇關于查詢依賴于 mongodb 中其他文檔值的文檔的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

                【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

                相關文檔推薦

                Check if a polygon point is inside another in leaflet(檢查一個多邊形點是否在傳單中的另一個內部)
                Changing leaflet markercluster icon color, inheriting the rest of the default CSS properties(更改傳單標記群集圖標顏色,繼承其余默認 CSS 屬性)
                Trigger click on leaflet marker(觸發點擊傳單標記)
                How can I change the default loading tile color in LeafletJS?(如何更改 LeafletJS 中的默認加載磁貼顏色?)
                Adding Leaflet layer control to sidebar(將 Leaflet 圖層控件添加到側邊欄)
                Leaflet - get latitude and longitude of a marker inside a pop-up(Leaflet - 在彈出窗口中獲取標記的緯度和經度)
                  <bdo id='5IsLU'></bdo><ul id='5IsLU'></ul>
                  <tfoot id='5IsLU'></tfoot>
                  <i id='5IsLU'><tr id='5IsLU'><dt id='5IsLU'><q id='5IsLU'><span id='5IsLU'><b id='5IsLU'><form id='5IsLU'><ins id='5IsLU'></ins><ul id='5IsLU'></ul><sub id='5IsLU'></sub></form><legend id='5IsLU'></legend><bdo id='5IsLU'><pre id='5IsLU'><center id='5IsLU'></center></pre></bdo></b><th id='5IsLU'></th></span></q></dt></tr></i><div class="mr32sje" id='5IsLU'><tfoot id='5IsLU'></tfoot><dl id='5IsLU'><fieldset id='5IsLU'></fieldset></dl></div>

                        <tbody id='5IsLU'></tbody>
                      1. <small id='5IsLU'></small><noframes id='5IsLU'>

                        • <legend id='5IsLU'><style id='5IsLU'><dir id='5IsLU'><q id='5IsLU'></q></dir></style></legend>

                          主站蜘蛛池模板: 法钢特种钢材(上海)有限公司 - 耐磨钢板、高强度钢板销售加工 阀门智能定位器_电液动执行器_气动执行机构-赫尔法流体技术(北京)有限公司 | 步进驱动器「一体化」步进电机品牌厂家-一体式步进驱动 | 美能达分光测色仪_爱色丽分光测色仪-苏州方特电子科技有限公司 | 右手官网|右手工业设计|外观设计公司|工业设计公司|产品创新设计|医疗产品结构设计|EMC产品结构设计 | 成都珞石机械 - 模温机、油温机、油加热器生产厂家 | 刚性-柔性防水套管-橡胶伸缩接头-波纹管补偿器-启腾供水材料有限公司 | 布袋式除尘器|木工除尘器|螺旋输送机|斗式提升机|刮板输送机|除尘器配件-泊头市德佳环保设备 | 锂电池砂磨机|石墨烯砂磨机|碳纳米管砂磨机-常州市奥能达机械设备有限公司 | 选宝石船-陆地水上开采「精选」色选机械设备-青州冠诚重工机械有限公司 | 济南拼接屏_山东液晶拼接屏_济南LED显示屏—维康国际官网 | 酒糟烘干机-豆渣烘干机-薯渣烘干机-糟渣烘干设备厂家-焦作市真节能环保设备科技有限公司 | 厦门网站建设_厦门网站设计_小程序开发_网站制作公司【麦格科技】 | 天坛家具官网| 智能家居全屋智能系统多少钱一套-小米全套价格、装修方案 | 建筑消防设施检测系统检测箱-电梯**检测仪器箱-北京宇成伟业科技有限责任公司 | 螺杆真空泵_耐腐蚀螺杆真空泵_水环真空泵_真空机组_烟台真空泵-烟台斯凯威真空 | 铝扣板-铝方通-铝格栅-铝条扣板-铝单板幕墙-佳得利吊顶天花厂家 elisa试剂盒价格-酶联免疫试剂盒-猪elisa试剂盒-上海恒远生物科技有限公司 | 整合营销推广|营销网络推广公司|石家庄网站优化推广公司|智营销 好物生环保网、环保论坛 - 环保人的学习交流平台 | 彼得逊采泥器-定深式采泥器-电动土壤采样器-土壤样品风干机-常州索奥仪器制造有限公司 | 胃口福饺子加盟官网_新鲜现包饺子云吞加盟 - 【胃口福唯一官网】 | 福建省教师资格证-福建教师资格证考试网 | 制氮设备-变压吸附制氮设备-制氧设备-杭州聚贤气体设备制造有限公司 | LCD3D打印机|教育|桌面|光固化|FDM3D打印机|3D打印设备-广州造维科技有限公司 | 高清视频编码器,4K音视频编解码器,直播编码器,流媒体服务器,深圳海威视讯技术有限公司 | 高光谱相机-近红外高光谱相机厂家-高光谱成像仪-SINESPEC 赛斯拜克 | 北京律师事务所_房屋拆迁律师_24小时免费法律咨询_云合专业律师网 | 重庆LED显示屏_显示屏安装公司_重庆LED显示屏批发-彩光科技公司 重庆钣金加工厂家首页-专业定做监控电视墙_操作台 | 苗木价格-苗木批发-沭阳苗木基地-沭阳花木-长之鸿园林苗木场 | 通信天线厂家_室分八木天线_对数周期天线_天线加工厂_林创天线源头厂家 | 谈股票-今日股票行情走势分析-牛股推荐排行榜 | 净化车间装修_合肥厂房无尘室设计_合肥工厂洁净工程装修公司-安徽盛世和居装饰 | 合肥仿石砖_合肥pc砖厂家_合肥PC仿石砖_安徽旭坤建材有限公司 | 水压力传感器_数字压力传感器|佛山一众传感仪器有限公司|首页 | 深圳VI设计-画册设计-LOGO设计-包装设计-品牌策划公司-[智睿画册设计公司] | 涂层测厚仪_漆膜仪_光学透过率仪_十大创新厂家-果欧电子科技公司 | 车间除尘设备,VOCs废气处理,工业涂装流水线,伸缩式喷漆房,自动喷砂房,沸石转轮浓缩吸附,机器人喷粉线-山东创杰智慧 | 注塑机-压铸机-塑料注塑机-卧式注塑机-高速注塑机-单缸注塑机厂家-广东联升精密智能装备科技有限公司 | 99文库_实习生实用的范文资料文库站 | 深圳公司注册-工商注册公司-千百顺代理记账公司 | 微动开关厂家-东莞市德沃电子科技有限公司 | EDLC超级法拉电容器_LIC锂离子超级电容_超级电容模组_软包单体电容电池_轴向薄膜电力电容器_深圳佳名兴电容有限公司_JMX专注中高端品牌电容生产厂家 |