Mongo
暗焰之珩
这个作者很懒,什么都没留下…
展开
-
MongoDB-$project操作符根据条件修改字段
在$project中直接使用$cond操作符即可,如下,如果current_operator字段为空或者为空列表,那么就把这个字段展示为["-"]db.alarm.aggregate([ // {'$match':{"create_time":{"$gt":ISODate("2021-05-12T15:23:12+08:00"),"$lt":ISODate("2021-12-23T17:51:15.964+08:00")}}}, { '$project': {原创 2021-05-20 14:27:46 · 1651 阅读 · 0 评论 -
MongoDB $unwind保留空数组
MongoDB的aggregate的pipeline中,有$unwind操作符,该操作符用于延展某一个数组类型的元素,作用与Python中的flatten(拍平)类似。但是在实际使用中,$unwind有一个非常明显的问题,就是如果要unwind的字段为空数组或者不存在时,则不会输出该文档。这样会引发pipeline中的计数有问题或者文档条目数莫名的减少。方法一在MongoDB 3.2和更高版本中,$unwind运算符现在具有一些选项,其中特别是preserveNullAndEmptyArra...原创 2021-04-22 09:57:29 · 2673 阅读 · 0 评论 -
MongoDB利用$elemMatch对内嵌文档进行多条件查询
目录背景内嵌文档单条件查询多条件查询背景问题:遇到如下类型的数据,想要查询出所有文档中 满足members中任意一条的name以"Bule"开头且其中的gender为"M" 的文档。// collection: test{ "_id" : ObjectId("5fc4646a2b7bfb044c042e52"), "id" : 1, "members" : [ { "name" : "BuleRiver1", "age" : 27, "gender"原创 2020-11-30 14:10:49 · 1179 阅读 · 0 评论 -
MongoDB筛选数组中每一条数据都满足条件的文档
假设存在如下的数据date: Dateusers: [ { user: 1, group: 1 } { user: 5, group: 2 }]date: Dateusers: [ { user: 1, group: 1 } { user: 3, group: 2 }]我想查询该集合以查找所有满足如下条件的文档:用户数组中的每个用户ID(即user)都位于[1、5、7]中。 在此示例中,仅第一个文档匹配;可以使用如下的语句满足对应需求,但是会存在性能问题:$whe翻译 2021-04-09 17:49:29 · 1819 阅读 · 0 评论