![](/img/trans.png)
[英]How to Update fields value in embedded documents of an Array in MongoDB using Java Driver
[英]How to add only embedded fields repetitively in mongodb using Java?
鑒於JSON:
{
"_id" : 2,
"Act_Name" : "prashanth",
"Act_Alias" : "H C",
"Group_Account_Name" : "Prashan",
"OpeningBalance" : 10000,
"Dr_Cr" : 10000,
"Is_Reserved" : true,
"Is_Group_Act" : false,
"Contact_Name" : "Prashanth",
"Contact_Address" : "Bangalore",
"Cr_Limit" : 2000,
"isDeleted" : true,
"Cr_Days" : {
"BillwiseTracking" : {
"Reference_Number" : 123,
"Reference_Date" : null,
"Due_Date" : null,
"Amount" : 12334,
"Ref_Dr_Cr" : 12
}
}
}
我只想重復添加字段:
"Reference_Number" : 123,
"Reference_Date" : null,
"Due_Date" : null,
"Amount" : 12334,
"Ref_Dr_Cr" : 12
我的代碼如下。
BasicDBObject billwiseTracking = new BasicDBObject();
billwiseTracking.put("Reference_Number",referenceNumber);
billwiseTracking.put("Reference_Date", referenceDate);
billwiseTracking.put("Due_Date", dueDate);
billwiseTracking.put("Amount", amount);
billwiseTracking.put("Ref_Dr_Cr", refDrCr);
BasicDBObject updateObj = new BasicDBObject("BillwiseTracking", billwiseTracking);
accountHeads.update(findQuery, new BasicDBObject("$set", updateObj));
我不太了解您的問題,但是如果您想追加
第一
“ Cr_Days”下的“ BillwiseTracking”對象,則結構應如下所示
"Cr_Days" :
{
"BillwiseTracking" :
[
{
"Reference_Number" : 123,
"Reference_Date" : null,
"Due_Date" : null,
"Amount" : 12334,
"Ref_Dr_Cr" : 12
},
{
"Reference_Number" : 145,
"Reference_Date" : null,
"Due_Date" : null,
"Amount" : 12355,
"Ref_Dr_Cr" : 13
}
]
}
這意味着它應該是數組元素,並且每次必須附加“ BillwiseTracking”值時
這可能是您的解決方案
// query for append data ele.
BasicDBObject updateQuery = new BasicDBObject();
updateQuery.put( "_id", 2 );
// object to appen
BasicDBObject billwiseTracking = new BasicDBObject();
billwiseTracking.put("Reference_Number",referenceNumber);
billwiseTracking.put("Reference_Date", referenceDate);
billwiseTracking.put("Due_Date", dueDate);
billwiseTracking.put("Amount", amount);
billwiseTracking.put("Ref_Dr_Cr", refDrCr);
// push used to append data elements
BasicDBObject updateCommand = new BasicDBObject();
updateCommand.put( "$push", new BasicDBObject( "BillwiseTracking", billwiseTracking ) );
// final query execution
WriteResult result = shoppingLists.update( updateQuery, updateCommand, true, true );
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.