大家好,我正在尝试使用MongoDB Java驱动程序匹配文档,例如:
{
"fName" : "abc",
"lName" : "456",
"dob" : "00",
"address" : "xyz"
}
使用
"nameIdentity" : [
{
"fName" : "abc",
"lName" : "def",
"dob" : "00",
"address" : "xyz"
},
{
"fName" : "123",
"lName" : "456",
"dob" : "00",
"address" : "789"
}
如果我找到了这个文档,那么我就不会添加它。我的问题在于,如果我的源文件包含fname: abc和lname: 456,它会匹配nameIdentity的第一组中的fname和第二组中的lname。我希望这是一个完整的匹配。我尝试过类似于以下内容的东西。
List<Document> nameIdentities = (List<Document>) matchedDocument.get("nameIdentity");
for (int i=0;i<nameIdentities.size();i++)
{
temp.add(nameIdentities.get(0));
quBasicDBObject=new BasicDBObject("$and",temp);
}
iterable = mongoDatabase.getCollection("entity").find(updatedDocumentTypeOne);
if (iterable.first() == null)
{
updateResult = mongoDatabase.getCollection("entity")
.updateOne(
new Document("_id", new ObjectId(objectId)),
new Document("$push", new Document("nameIdentity", nameList.get(0))));
}
你有什么建议,我做错了什么吗?