如何更新MongoDb中的數組?如何更新MongoDb中的數組值?
這是我的shell腳本我想用這個腳本更新fileInfo某些產品有fileInfo存在,有些產品有 fileInfo不存在。
所以我requrement是如果的fileInfo存在,將更新,如果不存在的fileInfo它會創建
什麼修改將採取我的代碼?三江源
{
"_id" : ObjectId("56d460721cdb5a4b0a73d4ba"),
"catId" : "56d4558b1cdb5a4b0a73d03b",
"pname" : "ABCName",
"brand" : "ABCBrand",
"actualPrice" : "19",
"offer" : 0,
"shopId" : "56d312a61cdb5a1a2d8045",
"mProId" : "569e04ecd08598371ebe53eb",
"del" : "N",
"createdOn" : "28-Feb-2016 19:29:29 UTC"
}
添加數據這一項中的每個文件
"fileInfo" : [
{
"versionId" : "BHpKOLlsgIRF7JqcBrKLPDFC5OgUAUEp",
"fileKey" : "productFile/abc.jpg"
}
],
這是我的shell腳本代碼
var product = currentDb.getCollection("product");
var shop_id = "56d312a61cdb5a1a2d8045";
var mproductData = mproduct.find();
var productData = product.find({shopId:shop_id});
var productData1 = product.find({shopId:shop_id}).count();
var count=0;
var mcount=0;
for(var i=0;i<mproductData.length();i++)
{
mcount++
for(var j=0;j<productData.length();j++)
{
if(mproductData[i]._id==productData[j].mProId)
{
count++;
var mpro_id = mproductData[i]._id;
var mfile_version = mproductData[i].fileInfo[0].versionId;
var mfile_key = mproductData[i].fileInfo[0].fileKey;
print(mpro_id);
print(mfile_info);
print(mfile_key);
if(mproductData[i]._id==productData[j].mProId)
{
count++;
var mpro_id = mproductData[i]._id;
var mfile_version = mproductData[i].fileInfo[0].versionId;
var mfile_key = mproductData[i].fileInfo[0].fileKey;
print(mpro_id);
print(mfile_info);
print(mfile_key);
product.update({"mProId":''+mpro_id+''},{"$set": {"fileInfo" : [{"versionId" : ''+mfile_info+'',"fileKey" : ''+mfile_key+''}]}};
}
}
}
我們來這裏是爲了幫助你,但不要做你的作業或家庭作業。如果你不知道編程,只需谷歌和閱讀文件。 – Saleem