首先,我们先创建一下集合(数据表),代码及其结构如下:
db.tb4.insert([{"UserID":1,"age":27,"salary":4500,"sex":"女"},
{"UserID":2,"age":17,"salary":7500,"sex":"男"},
{"UserID":3,"age":22,"salary":8300,"sex":"女"},
{"UserID":4,"age":19,"salary":3800,"sex":"男"},
{"UserID":5,"age":23,"salary":5100,"sex":"男"},
{"UserID":6,"age":19,"salary":3750,"sex":"女"}])
聚合查询,查询年龄小于20且性别为女的数据。
db.tb4.aggregate({'$match':{"age":{"$lt":20},"sex":{"$ne":"男"}}})
结果:
聚合查询,查询UserID小于3或者年龄大于20的数据。
db.tb4.aggregate({"$match":{"$or":[{"UserID":{"$lt":3}},{"age":{"$gt":20}}]}})
结果:
聚合查询的过滤字段,查询UserID大于3,且salary大于等于3800,不显示_id字段的数据。
db.tb4.aggregate({"$match":{"$and":[{"UserID":{"$gt":3}}
,{"salary":{"$gte":3800}}]}},
{"$project":{"_id":0,"UserID":1,"age":1,"salary":1}})
结果:
聚合查询的新增字段,查询UserID大于4,且不显示_id字段,新增字段name的数据。
db.tb4.aggregate({"$match":{"UserID":{"$gt":4}}},
{"$project":{"UserID":1,"_id":0,"age":1,"salary":1,"sex":1,"name":"小红帽"}})
结果:
聚合查询的修改字段值,查询年龄小于20且字段name的值修改为age字段值,不显示_id字段值的数据。
db.tb4.aggregate({"$match":{"age":{"$lt":20}}},
{"$project":{"name":"$age","_id":0,"age":1,"UserID":1,"salary":1,"sex":1}}
)
结果:
聚合查询的字段值修改为其他数据,查询年龄大于20,且_id字段值不显示,将age字段值修改为"18岁"。
db.tb4.aggregate({"$match":{"age":{"$gt":20}}},
{"$project":{"_id":0,"age":1,"sex":1,"salary":1,"age":"18岁"}})
接着,我们创建一个集合,结构和内容如下:
聚合查询抽取字段,抽取个人信息性别不为”女性“且姓名,年龄,性别修改成为name,age,sex的数据。
db.tb2.aggregate({"$match":{"个人信息.性别":{"$ne":"女"}}},
{"$project":{"name":"$个人信息.姓名","age":"$个人信息.年龄","sex":"$个人信息.性别"}})
结果:
下面,我们有一个集合,结构如下:;
聚合查询特殊字符,将salary修改为$5000,UserID修改为1。
db.tb4.aggregate({"$match":{"age":{"$gt":20}}},
{"$project":{"_id":0,"UserID":1,"salary":{"$literal":"$5000"},"UserID":{"$literal":1}}})
结果:
最后,感谢大家前来观看鄙人的文章,文中或有诸多不妥之处,还望指出和海涵。