zoukankan      html  css  js  c++  java
  • MongoDB查询语句 (增、删、改、查)

    集合查询
    db.TableName.find({"listData.listData1.field":2});
    非集合查询
    db.TableName.find({"field":2});
    多条件查询
    db.TableName.find({"field1":1,"field2":"test"});
    
    非集合新增
    db.TableName.update({},{$set: {"new_field":1}}, {multi:true}) 
    db.TableName.update({"new_field":{$exists:false}},{$set:{"new_field":NumberInt("0")}},{multi:true})
    
    
    集合新增
    db.Vac_Order.find({}).forEach(function(order){
    order.OrderDetail.forEach(function(detail){
    detail.MappingDetail.forEach(function(mapping){
    if(!mapping.newField){
    mapping.newField=0 //新增字段
    }
    })
    })
    db.Vac_Order.save(order)
    })
    
    非集合删除
    db.TableName.update({}, {$unset: {"new_field":1}},{multi:true})
    
    db.TableName.deleteMany({"field":"条件"})=
    db.TableName.deleteOne({"field":"条件"})
    集合删除
    db.Vac_Order.find({}).forEach(function(order){
    order.OrderDetail.forEach(function(detail){
    detail.MappingDetail.forEach(function(mapping){
    if(mapping.newField){
    delete mapping.newField//删除字段
    }
    })
    })
    db.Vac_Order.save(order)
    })
    
    
    非集合修改
    db.TableName.update({"field":"条件"},{$set:{"field":"新值"}},{multi:true})
    
    集合修改
    集合修改1
     db.Vac_Order.find({}).forEach(
    function(order)
    {
    order.OrderDetail.forEach(
    function(detail)
    {
    detail.MappingDetail.forEach(
    function(mapping)
    {
    if(mapping.newField)
    { mapping.newField
    =1//重新赋值 }
    })
    })
    db.Vac_Order.
    save(order)
    })

    集合修改2

    var i=0;
    db.Vac_Regional_AreaInventory.find({"RegionCode" : "630000","SpecificationQty" : 0,}).forEach(
    function(item)
    {

    if(item.AccountQty!=parseFloat(item.AvailableQty)+parseFloat(item.AllocatedQty)+parseFloat(item.UnusedQty))
    {
    print(item) ;// print(item.AccountQty+'/'+(parseFloat(item.AvailableQty)+parseFloat(item.AllocatedQty)+parseFloat(item.UnusedQty)))
    print(i);
    i++

    db.Vac_Regional_AreaInventory.update({'_id':item._id},{$set:{'AllocatedQty':item.AccountQty}},{multi:true})

    }
    )

    
    查询操作符
    操作符"$gt" 、"$gte"、 "$lt"、 "$lte"(分别对应">"、 ">=" 、"<" 、"<=")
    示例如下
    1:查询为10-100(包含10但不含100)的数据 
    db.TableName.find( { field: { $gte: 10 ,$lt:100} }
    
    2:查询不等于99的数据
    db.TableName.find( { field: {$ne:99} }
    
    
    键值为null查询操作
      如何检索出field键值为null的文档,我们使用in&quot;&#x3001;&quot;">"in"、"where"操作符,"$in"判断键值是否为null,"$exists"判定集合中文档是否包含该键
    示例如下:
    
    1:找条件为X且Y的field列为null的数据
    db.TableName.find({field:{$in:[null],$exists:true },"where_field" : X, "where_field" : Y})
    "$in" 
    2:查询出field键值为value1或者value2的文档
    db.TableName.find( { field: { $in: [ value1, value2] } } )
    "$nin" 
    db.TableName.find( { field: { $nin: [ value1, value2] } } )

    MongoDB聚合函数查询
    eg: 实现Select Group by Having

    SQL:SELECT BatchNo, ManufacturerId,Specification,VaccineId,COUNT(BatchNo) sum

    FROM student

    GROUP BY id

    HAVING sum>1;

    MongoDB实现

    db.Vac_ManufacturerMaping.aggregate(
    {"$group": {_id:{BatchNo:"$BatchNo",ManufacturerId:"$ManufacturerId",Specification: "$Specification",VaccineId:"$VaccineId"}, "count": { "$sum": 1 } } },
    {"$match": {"_id" :{ "$ne" : null } , "count" : {"$gt": 1} } }
    )

  • 相关阅读:
    iOS11自定义tabBar重影问题
    iOS打包时遇到的has one iOS Distribution certificate but its private key is not installed的问题
    MAC本地生成SSH KEY的方法
    Mac版Sourcetree的安装使用
    Xcode报错:could not attach to pid:"1764"
    解决Xcode10 Library not loaded: /usr/lib/libstdc++.6造成的crash及报错
    socket调试工具(Mac版)
    iOS-基于TCP连接<Scoket-服务端>
    iOS自定义TabBar使用popToRootViewControllerAnimated返回后tabbar重叠
    [UIApplication sharedApplication].keyWindow.rootViewController
  • 原文地址:https://www.cnblogs.com/wu-peng/p/9086642.html
Copyright © 2011-2022 走看看