`

mongodb笔记

 
阅读更多

1.查询数组只返回数组中存在的该条件的数组. db.tablename.find({"arryname.fieldname":value},{"arryname.$":1}) 如果有多条匹配,只返回第一条

2.根据mongodb自带的objectId(_id)来查询

    db.wf_definitions.find({"_id":new ObjectId("53747052e4b080e26b0c0f22")})

    java代码:

    BasicDBObject bdb=new BasicDBObject("_id",new ObjectId("53747052e4b080e26b0c0f22"));

    dbCollection.find(bdb);

3.删除数组对象内嵌文档

db.*****.update(
    {
        "_id" : new ObjectId("537ee7087c1f6fef727d9889"),
        "stepdefinitions.stepnumber":"end"
    },
     {
        "$pull":{"stepdefinitions":{"stepnumber":"end"}}
    }
);

4.mongodb使用了剥离后需要统计记录的条数

db.****.aggregate({"$unwind":"$*"},{"$match":{"****":"admin"}}, {"$group": { "_id": null, "count": { "$sum": 1 } }})

 

5.mongodb的group by  类似  mapreduce使用。

  map的必须要使用emit函数,reduce 的vals 是emit第二个参数的集合

   finalize  会重新解析 返回数据

 

db.runCommand({ mapreduce: "wf_definitions", 
 map : function () {
var desc=this.description;

 if(this.status=='disable'){
  desc=desc+'(已停用)';
 }
emit(this.defname,{"description":desc,"status":this.status});
},
 reduce : function(key, vals) {  
 var desc=vals[0];
 var i=0;
 for(;i< vals.length;i++){
  if(vals[i].status=='enable'){
  desc=vals[i];
   break;
  }
 }
    return desc;  
} ,
 finalize : function (key, reduced) {
 return {"defname":key,"description":reduced.description,"status":reduced.status};
},
 query : { "$or" : [{ "defname" : { "$in" : ["工作转交子流程", "慰问子流程_产假", "员工", "新建测试使用工作流"] } }, { "status" : "enable" }] },
 keeptemp : false
 });

 

 

 mongodb和sql 的转换对应:

MongoDB  MySQL
aggregate: "DenormAggTable"
FROM DenormAggTable
{
    $match : {
        Filter1 : {$in : ['A','B']},
        Filter2 : 'C',
        Filter3 : {$gt : 123}
    }
}
WHERE (Filter1 IN (’A’,’B’))
  AND (Filter2 = ‘C’)
  AND (Filter3 > 123)
{
    $project : {
        Dim1 : 1,
        Dim2 : 1,
        Measure1 : 1,
        Measure2 : 1,
        lessThanAHundred : {
            $cond: [ 
                {$lt: ["$Measure2", 100] },
                "$Measure2", // if
                0]           // else
        }
    }
}
CASE
  WHEN Measure2 < 100
  THEN Measure2
END
{
    $group : {
        _id : {Dim1 : 1, Dim2 : 1},
        MSum : {$sum : "$Measure1"},
        RecordCount : {$sum : 1},
        MAvg : {$avg : "$Measure2"},
        MMin : {$min : "$Measure1"},
        MMax : {$max : "$lessThanAHundred"}
    }
}
SELECT
  Dim1, Dim2,
  SUM(Measure1) AS MSum,
  COUNT(*) AS RecordCount,
  AVG(Measure2) AS MAvg,
  MIN(Measure1) AS MMin
  MAX(CASE
    WHEN Measure2 < 100
    THEN Measure2
  END) AS MMax
 
GROUP BY Dim1, Dim2
{
    $match : {MMin : {$gt : 0}}
}
HAVING (MMin > 0)
{
    $sort : {RecordCount : -1}
}
ORDER BY RecordCount DESC
{
    $limit : 8
},
{
    $skip : 4
}
LIMIT 4, 8
  • 大小: 114 KB
分享到:
评论

相关推荐

    MongoDB笔记.docx

    ### MongoDB核心知识点详解 #### MongoDB简介 MongoDB是一款开源的NoSQL数据库系统,与传统的关系型数据库不同,它采用了一种灵活的数据模型——文档模型,这使得它在处理半结构化和非结构化的数据时非常高效。...

    MongoDB笔记.md

    MongoDB笔记,含Ubuntu18.04安装MongoDB教程及入门教程。

    mongodb笔记和资料

    mongodb笔记和资料,配套视频:https://www.bilibili.com/list/474327672?sid=4493759&spm_id_from=333.999.0.0&desc=1

    mongodb笔记,服务安装 CRUD语法,及node服务端操作MongoDB

    mongodb笔记,服务安装 CRUD语法,及node服务端操作MongoDB

    mongoDB笔记整理

    MongoDB笔记整理 MongoDB 是一个基于分布式文件存储的数据库,由 C++ 语言编写,旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。下面是 MongoDB 的详细知识点: 1. 简介 MongoDB 是一个介于关系数据库和非...

    mongodb学习笔记

    mongodb学习笔记 MongoDB 是一个基于分布式文件存储的开源数据库系统,主要用于处理大量数据的存储和查询。以下是 MongoDB 的一些基本操作和技巧: 插入文档 MongoDB 中可以使用 `insert` 方法来插入文档,例如 ...

    MongoDB学习笔记

    MongoDB 是一种流行的开源、高性能、无模式的文档型数据库,尤其适合于处理大量结构化和半结构化数据。在本文中,我们将深入探讨MongoDB的一些核心概念和操作,包括其丰富的数据类型、易扩展性、功能强大的索引和...

    mongodb笔记.md

    mongod --storageEngine mmapv1 --dbpath "d:\mongodb\db" --logpath "d:\mongodb\log\MongoDB.log" --install --serviceName "MongoDB" ``` - 启动服务: ``` net start MongoDB ``` - 关闭服务: ``` ...

    express+mongodb笔记

    【Express + MongoDB 知识点详解】 Express 是一个基于 Node.js 平台的简洁、灵活的Web应用开发框架,它简化了HTTP服务器的创建过程,提供了丰富的中间件系统,使得开发者能够快速构建从简单的API到复杂的web应用。...

    mongodb笔记(五分钟快速回忆)

    不用再花太多时间去看视频,找资料,通过思维导图,能让你快速回忆mongodb数据库的知识点,其中包裹聚合以及与Python交互。

    mongo学习笔记.doc

    MongoDB基本知识整理。 Mongodb导出与导入命令、创建分片、创建复制集等。

    李兴华java笔记

    《李兴华Java实战经典笔记》是一份深入探讨Java编程技术的宝贵资料,由知名IT教育专家李兴华编撰。这份笔记集合了他在教学和实践中积累的丰富经验,旨在帮助学习者掌握Java的核心概念、设计模式以及实战技巧。通过这...

    MongoDB 入门教程笔记

    MongoDB 入门教程笔记

    尚硅谷-Mongodb

    尚硅谷-Mongodb,课件资料,源码,给力的学习资料,没有密码

    mldn 李兴华笔记

    《李兴华笔记》是针对Java学习的一系列珍贵资料,主要由MLDN(可能是某个教育机构或个人的缩写)出版。这些笔记包含了丰富的学习内容,对于初学者和有一定经验的开发者来说,都是很好的参考资料。下面,我们将深入...

    mongdb学习笔记

    Mongodb,分布式文档存储数据库,由C++语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSql数据库中比较热门的一种。它在许多场景下可用于...

    MongoDB学习笔记(五) MongoDB文件存取操作

    由于MongoDB的文档结构为BJSON格式(BJSON全称:Binary JSON),而BJSON格式本身就支持保存二进制格式的数据,因此可以把文件的二进制格式的数据直接保存到MongoDB的文档结构中。但是由于一个BJSON的最大长度不能...

    mongodb学习笔记资料

    mongodb学习笔记资料,从安装到操作库collection 对document的crud 索引 replicaSet sharding 备份与恢复

Global site tag (gtag.js) - Google Analytics