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} } }
)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM