文档中同一数组元素的同一MongoDB更新中的$push和$set

文档中同一数组元素的同一MongoDB更新中的$push和$set,mongodb,mongodb-query,mongo-java-driver,Mongodb,Mongodb Query,Mongo Java Driver,文档结构如下所示- { "nestedDocArray" : [ { "a" : "a", "b" : "b", "c" : "c", "createdOn" : ISODate("2018-06-19T08:38:34.228Z") }, { "a" : "a1", "b" : "b1000"

文档结构如下所示-

{
    "nestedDocArray" : [ 
        {
            "a" : "a",
            "b" : "b",
            "c" : "c",
            "createdOn" : ISODate("2018-06-19T08:38:34.228Z")
        }, 
        {
            "a" : "a1",
            "b" : "b1000",
            "c" : "c1",
            "createdOn" : ISODate("2018-06-19T08:38:34.233Z")
        }, 
        {
            "a" : "a1000",
            "b" : "b1000",
            "c" : "c1000",
            "createdOn" : ISODate("2018-06-21T10:54:30.679Z")
        }
    ]
}

如果我尝试在单个update语句中对同一nestedDocArray属性执行$push、$pull和$set,则会导致异常“更新路径'nestedDocArray'将在'nestedDocArray'处创建冲突”

您无法在mongodb的单个更新查询中对同一数组执行
$pull
$push
。。。您必须使用不同的查询来执行此操作,因为mongodb没有事务管理,所以我没有太多的选项,因为我的业务逻辑要求我使用$pull和$push,或者根本不使用。有没有其他方法可以实现这一点?您只剩下一个选项,即使用两个查询。。。一个用于
$pull
和一个用于
$push