mogonDB基础语法

105 阅读2分钟

1、查询 find

语法:db.collectionName.find({条件},{显示条件})

db.barca.find({age:{$gt:25},pos:'MF'}) 年龄大于25,位置为 MF 中场

db.barca.find({},{name:1,age:1,_id:0}) 第一个占位,显示所有, 1表示所有 0 无

db.barca.distinct(‘age’)显示 年龄 //[20,31,24,25,36]

db.镀膜班组派工.find({合格数:{gt:30,gt:30,lt:60}}) 合格数 大于30 小 60

db.镀膜班组派工.find({合格数:{in:[45,50]}}) 合格数为45 或 50 的 db.镀膜班组派工.find({or:[{合格数:45},{合格数:50}]})

db.镀膜班组派工.find({合格数:{$nin:[45,50]}}) 合格数不为45 或不为 50 的

db.产品定义.find( ).sort({'静置时长(h)':-1}) 根据静置时长排序, 倒叙

db.产品定义.find().skip(10).limit(1) 取第11个 数据信息

db.产品定义.find({'data.1':{$gt:20}}) data数组中的第二条数据

多条件查询

    {'$match':{"工单号":ddgl_arr[i]['工单号']}},
    {'$match':{'$or':[{"模组总电压电阻测试结果":{"$in":["NG"]}},{"串口测试1结果":{"$in":["NG"]}},     {"串口测试2结果":{"$in":["NG"]}},{"部件条码绑定数据结果":{"$in":["NG"]}},
    {"电池总耐压测试结果":{"$in":["NG"]}},
    {"部件条码绑定数据结果":{"$in":["NG"]}},
    {"栈板条码绑定数据结果":{"$in": ["NG"]}},
    {"充放电过程测试结果":{"$in":["NG"]}},
    {"充放电工步测试数据结果":{"$in":["NG"]}},
    {"整机称重数据结果":{"$in":["NG"]}},
    {"组装QC检查结果":{"$in":["NG"]}}]}},
    {'$group':{'_id':null,'count':{'$sum':1}}}
  ]).toArray()

2、更新 update

语法:

db.inventory,find(

{查询条件},

{update},

{

upsert:如果条件不存在是否新增记录,默认是false

multi:是否修改多条,默认false,只更新找到的第一条

}

)

1、db.inventory.update({qty:50},{$set:{status:'AA'}})

2、db.inventory.update({qty:50},{$set:{'size.uom':'AA'}})

更新多条数据

3、db.inventory.update({status:"D"},{$set:{'size.h':'10000',status:'DD'}}, **{upsert:false,multi:true**}) 更新多条 数据 ,第三个参数 中 upsert 不用也要写上

更新内嵌文档


db.产品定义.update({
  
    "注塑工单": { $elemMatch: { "产品工艺路线": args[0] } },
    
}, {
    $set:{
           "注塑工单":[args[1]],  //这里需要放数组
         
    }
},false,true);

db.产品定义.update({
  
    "镀膜工单": { $elemMatch: { "产品工艺路线": args[0] } },
    
}, {
    $set:{
           "镀膜工单":[args[1]],
         
    }
},false,true);

需要修改的页面内容格式:

"注塑工单" : [
    {
      "产品工艺路线" : "ZS1",
      "工序路径" : "镀膜后外观检",
      "工艺路线编码" : "ZS001",
      "产品属性" : "半成品"
    }
  ],

3、删除

**db.collection.remove**({
查询条件},
{justone:true or false, 默认为false 找到的全删
writeConcern:抛出异常
}
)
b、语法二
db.barca.drop()

4、聚合

管道在Unix和Linux中一般用于将当前命令的输出结果作为下一个命令的参数。

MongoDB的聚合管道将MongoDB文档在一个管道处理完毕后将结果传递给下一个管道处理。管道操作是可以重复的。

表达式:处理输入文档并输出。表达式是无状态的,只能用于计算当前聚合管道的文档,不能处理其它的文档。

这里我们介绍一下聚合框架中常用的几个操作:

  • $project:修改输入文档的结构。可以用来重命名、增加或删除域,也可以用于创建计算结果以及嵌套文档。
  • $match使用MongoDB的标准查询操作。
  • $limit:用来限制MongoDB聚合管道返回的文档数。
  • $skip:在聚合管道中跳过指定数量的文档,并返回余下的文档。
  • $unwind:将文档中的某一个数组类型字段拆分成多条,每条包含数组中的一个值。
  • $group:将集合中的文档分组,可用于统计结果。
  • $sort:将输入文档排序后输出。
  • $geoNear:输出接近某一地理位置的有序文档。