第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

我無法在java中復(fù)制mongo數(shù)組的更新

我無法在java中復(fù)制mongo數(shù)組的更新

開心每一天1111 2023-08-09 15:45:58
我有一個(gè)具有以下結(jié)構(gòu)的數(shù)據(jù)庫:{    "_id" : ObjectId("5d54608122474f8d2927d898"),    "NOMBRE_HOST" : "Base1",    "IsContingenciaODA" : "false",    "puerto" : "1532",    "HostContigencia" : "Base2",    "BASEDATOS" : [        {            "SID" : "REPOS",            "IsContingenciaBD" : "false",            "host" : "Base3",            "puerto" : "1111"        },        {            "SID" : "PRODM2",            "IsContingenciaBD" : "false",            "host" : "nb",            "puerto" : "1111"        },        {            "SID" : "PRODM3",            "IsContingenciaBD" : "true",            "host" : "Base4",            "puerto" : "999"        }    ]}{    "_id" : ObjectId("5d54608122474f8d2927d899"),    "NOMBRE_HOST" : "172.0.0.1",    "IsContingenciaODA" : "false",    "puerto" : "1532",    "HostContigencia" : "172.10.0.1",    "BASEDATOS" : [        {            "SID" : "Base6",            "IsContingenciaBD" : "false",            "host" : "172.7.0.1",            "puerto" : "999"        }    ]}我需要更新嵌入文檔的IsContingenciaBD參數(shù)。在 mongo 中更改此值的查詢?nèi)缦拢篸b.PropertiesMQ.update({"NOMBRE_HOST" : "Base1", "BASEDATOS.SID" : "PRODM3"}, {$set: {"BASEDATOS.$.IsContingenciaBD" : "true"}})我嘗試使用以下代碼在 java 中復(fù)制此查詢:        MongoClient client = new MongoClient("my_ip", "my_port");        MongoDatabase mongodb = client.getDatabase("prueba");        MongoCollection<Document> collection = mongodb.getCollection("PropertiesMQ");        BasicDBObject filter = new BasicDBObject();        filter.put("NOMBRE_HOST", host);        filter.put("BASEDATOS.SID", sid);        BasicDBObject data = new BasicDBObject();        data.put("BASEDATOS.$.IsContingenciaBD", state);        BasicDBObject command = new BasicDBObject();        command.put("$set", data);        System.out.println(filter + ", " + command);        collection.updateOne(filter, data);        client.close();執(zhí)行時(shí)我收到以下錯(cuò)誤:線程“main”中的異常 java.lang.IllegalArgumentException:無效的 BSON 字段名稱 BASEDATOS.$.IsContingenciaBD
查看完整描述

1 回答

?
泛舟湖上清波郎朗

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超3個(gè)贊

看起來您在 updateOne 方法中使用了數(shù)據(jù)。相反,它應(yīng)該是命令BasicDBObject。就像下面這樣,


    MongoCollection<Document> collection = mongodb.getCollection("PropertiesMQ");

    BasicDBObject filter = new BasicDBObject();

    filter.put("NOMBRE_HOST", host);

    filter.put("BASEDATOS.SID", sid);

    BasicDBObject data = new BasicDBObject();

    data.put("BASEDATOS.$.IsContingenciaBD", state);

    BasicDBObject command = new BasicDBObject();

    command.put("$set", data);

    System.out.println(filter + ", " + command);

    collection.updateOne(filter, command); //Use Command instead of data


查看完整回答
反對(duì) 回復(fù) 2023-08-09
  • 1 回答
  • 0 關(guān)注
  • 123 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)