社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  MongoDB

使用id和日期更新MongoDB上的文档

Giacomo Giovannini • 4 年前 • 363 次点击  

我正在使用java应用程序更新MongoDB上的文档。唯一的键是“\u id”,但最近我被要求更新它们来检查日期字段。我想更新DPoCube而不必知道它是否已经存在,所以我使用Update:Update:true,但是因为我使用了过滤器中的日期,而这不是文档密钥的一部分,所以我得到了错误:

{
    "ok" : 0,
    "errmsg" : "E11000 duplicate key error collection: TEST.CLIENT index: _id_ dup key: { : { clientId: \"pippoalsugo\" } }",
    "code" : 11000,
    "codeName" : "DuplicateKey"

}

在这种情况下,是否有方法只使用一个查询来更新/插入? 这里是MongoDB上文档的结构和我用来更新/插入文档的查询。

文件:

{
    "_id" : {
            "clientId" : "8"
    },
    "CLIENT" : {
            "CLIENT_DOC" : [
                    {
                            "idDoc" : "ret",
                            "dsTimestamp" : "2018-01-15 10:01:01.000000",
                            "LAST_UPDATE" : ISODate("2018-01-15T10:01:01Z")
                    }
            ],
            "LAST_UPDATE" : ISODate("2019-02-05T16:44:56.733Z"),
            "codType" : "client",
            "dsTimestamp" : "2018-01-17 08:23:01.000000"
    }

}

查询:

db.CLIENT.update({
                    "_id": {
                        "clientId": "8"
                    },
                    "ANAGRAFICA_CLIENTE.LAST_UPDATE": {
                        "$lte": {
                            "$date": 1542672000000
                        }
                    }
                   }, {
                    "$set": {
                        "ANAGRAFICA_CLIENTE.codTipoClienteInput": "CLIENTE RETAIL",
                        "ANAGRAFICA_CLIENTE.dsTimestamp": "2018-11-20 00:00:00.000000",
                        "ANAGRAFICA_CLIENTE.LAST_UPDATE": {
                            "$date": 1542672000000
                        }
                    }
                }, {upsert:true})   
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/51838
 
363 次点击