mongodb常用语法

复制代码
// Employee表        
{
    "_id" : "9e794fb9-12dc-457c-8c5a-69fe45c57685",
    "No" : 2018090821,
    "Name" : "Kelly",
    "Age" : 18,
    "Addresses":[
        {"Type" : "Home", "Location" : "Beijing"},
        {"Type" : "Office", "Location" : "Beijing"}
    ]
}

// 分页过滤查找
db.Employee.aggregate([
    { $match:{"Name":"Kelly"}},
    { $project:{"Name":1, "Age":1}},
    { $sort:{"Age":1}},
    { $skip:1000},
    { $limit:30}
],{allowDiskUse:true})

// 查找不在北京工作的员工(数组操作)
db.Employee.aggregate([
    {"$match": {"Type" : "Office", "Addresses": {$not:{$elemMatch:{"Location": "Beijing"}}}}}
],{allowDiskUse:true})

var result = db.Employee.distinct("No", {"Type" : "Office", "Location": "Beijing"})
db.Employee.aggregate([
   {"$match": {"No": {$nin: result}}}
],{allowDiskUse:true})

// 查找在北京工作,且有2个以上住宅的员工
db.Employee.aggregate([
   {"$match": {"Type" : "Office", "Location": "Beijing"}},
   {"$unwind": "$Addresses"},
   {"$match": {"Addresses.Type": "House"}},
   {"$group": {_id: "$No", "count": {"$sum": 1}}},
   {"$match": {"count": {"$gt": 2}}},
   {"sort": {"count":1}}
],{allowDiskUse:true})

// 查找年龄为23-26,名字为Lily或Sam的员工
db.Employee.find({$or:[{"name":"Lily"},{"name":"Sam"}], "Age":{$gte: 23, $lte: 26}}, {"No":1, "Name":1, "_id":0})
复制代码

select country, province  from dbo.regions group by country, province having count(distinct city)>1 order by country, province 

db.getCollection('dbo.regions').aggregate([
{$group:{_id:{"country" :"$country" ,"province":"$province", "city":"$city"}}}
,{$group:{_id:{"country" :"$_id.country" ,"province":"$_id.province"}, count: {$sum:1}}}
,{$match:{count:{$gt:1}}}
// ,{$project: {"country" :"$_id.country" ,"province":"$_id.province", "_id":0}}
// ,{$sort: {"country" : 1, "province":1}}
// ,{$group:{_id:{"country" :"$country" }, count: {$sum:1}}},
])

posted @   安小  阅读(131)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示