当前位置:首页>开发>正文

Mongodb如何按照数组中某一个对象进行查询 Mongodb 多维数组查询

2023-07-16 03:11:56 互联网 未知 开发

 Mongodb如何按照数组中某一个对象进行查询 Mongodb 多维数组查询

Mongodb如何按照数组中某一个对象进行查询

mongodb中使用aggregate可以返回数组字段数组的指定索引的元素
参考语句:
{$match:{duid:15}},
{$project:{duid:1,"default":1}},
{$unwind:"$default.styles"},
{$match:{default.styles.status:1}},
{$group:{_id:"$_id","defaults":{$push:"$default.styles"}}}
解释:
1:过滤数据{$match:{duid:15}}
2:获取想要的列{$project:{duid:1,"default":1}}
3:获取展开后数组字段{$unwind:"$default.styles"}
4:条件查询数组元素{$match:{default.styles.status:1}}
5:分组后保存结果{$group:{_id:"$_id","defaults":{$push:"$default.styles"}}}
数据结构如下:
{
"_id" : ObjectId("55dad346ea23e7c11beefce5"),
"duid" : 11.0,
"default" : {
"style" : "普通会诊",
"alias" : "",
"money" : "0",
"styles" : [{
"code" : 1,
"style" : "普通会诊",
"alias" : "一般会诊",
"money" : 100,
"status" : 1,
"remark" : "需要患者亲自来到医院"
} {
"code" : 6,
"style" : "夜间门诊",
"alias" : "夜间门诊",
"money" : 100,
"status" : 0,
"remark" : "夜间门诊"
}, {
"code" : 7,
"style" : "其他门诊",
"alias" : "其他门诊",
"money" : 10,
"status" : 0,
"remark" : "其他门诊"
}]
}
}

Mongodb 多维数组查询

update的$只支持一层的array,你这样必须先用find找到然后取出这个doc,然后决定是要update第几个,然后再update。
如果你一定要直接用update,你可以减少一层array,比如把grand设计成一个collection。

mongodb数据库怎么查询出某一段时间内的数据

参考代码如下:
var start = new Date(2010, 3, 1)
var end = new Date(2010, 4, 1)

db.posts.find({created_on: {$gte: start, $lt: end}})
(代码内日期可自行设置修改)

最新文章