我有一个mongo集合,如:
{
"_id": ObjectId("55cad746aed75601b4822cc9"),
"entityId": "12",
"entityType": "a",
"nameIdentity": [{
"fName": "abc",
"lName": "def",
"dob": "00",
"address": "xyz"
},
]
}
我正在使用mongodb java 3.0驱动程序并尝试匹配和更新.例如:我试图匹配entityId,如果它找到,然后添加新的nameIdentity.
我第二次通过
{
"fName": "123",
"lName": "456",
"dob": "00",
"address": "789"
}
对于我的entityId:12如果它匹配,那么我的新集合应该是这样的:
{
"_id": ObjectId("55cad746aed75601b4822cc9"),
"entityId": "12",
"entityType": "a",
"nameIdentity": [{
"fName": "abc",
"lName": "def",
"dob": "00",
"address": "xyz"
}, {
"fName": "123",
"lName": "456",
"dob": "00",
"address": "789"
}]
}
我想将它添加到相同的匹配对象或集合中.但它取代了以前的数组,并添加了这样的新:
{
"_id": ObjectId("55cad746aed75601b4822cc9"),
"entityId": "12",
"entityType": "a",
"nameIdentity": [
{
"fName": "123",
"lName": "456",
"dob": "00",
"address": "789"
}
]
}
当实体ID匹配时,我想要添加所有内容而不更新.我尝试的代码是:
mongoDatabase.getCollection("entity").findOneAndUpdate(
updateDocument, new Document("$set",entityDocument));
我尝试使用$push和$set.它创建了一个新的nameIdentity数组.但我想添加相同匹配的nameIdentity数组.有什么建议我哪里出错了?