2017-01-07 2 views
0

In meiner MongoDB Sammlung ich einige Felder haben, einer von ihnen ist „EntitySet, jetzt muss ich ein neues Feld einfügen, zum Beispiel‚EntityAlchemy‘zu.MongoDB einfügen und aktualisieren Feld

Dies ist, wie es aussieht jetzt:.?

"EntitySet": [ 
    { 
      "Name" : "maka", 
      "EntityType" : "Person", 
      "Relevance" : 0.0, 
      "SentimentScore" : 0.0, 
      "CountInText" : 0 
    } 
] 

und es sollte nach dem Update wie diese aussehen

"EntitySet" : [ 
    { 
     "Name" : "maka", 
     "EntityType" : "Person", 
     "Relevance" : 0.0, 
     "SentimentScore" : 0.0, 
     "CountInText" : 0 
    } 
], 
"EntityAlchemy" : [ 
    { 
     "Name" : "DZ Bank", 
     "EntityType" : "Company", 
     "Relevance" : 0.0, 
     "SentimentScore" : 0.0, 
     "CountInText" : 0 
    } 
] 

ich kann nur feststellen, wie ein vorhandenes Feld aktualisieren kann jemand helfen, wie dies zu tun

Antwort

1

Verwenden Sie $set zum Hinzufügen weiterer Schlüssel/Wert-Paare.

Syntax ist:

db.collection.update({query}, {$set: {key-value pairs}}); 

Beispiel:

db.coll1.update({_id:1}, 
    {$set: "EntityAlchemy" : [ 
    { 
     "Name" : "DZ Bank", 
     "EntityType" : "Company", 
     "Relevance" : 0.0, 
     "SentimentScore" : 0.0, 
     "CountInText" : 0 
     } 
    ]}); 
0

Sie $ Push für Array verwenden können, Mongo wird das Feld als Array erstellen, wenn es nicht existiert.

var alchemy = { 
     "Name" : "DZ Bank", 
     "EntityType" : "Company", 
     "Relevance" : 0.0, 
     "SentimentScore" : 0.0, 
     "CountInText" : 0 
    }; 
db.getCollection('test').update({_id:1},{$push : {'EntityAlchemy' : alchemy}}); 
+0

Ich weiß, wie man das in der Mongo-Shell macht, mein Problem ist, dass ich es in Java machen muss und ich kann es nicht funktionieren lassen. – sp0030

+0

In Java kann auch getan werden, welchen Treiber Sie verwenden? Spring-Daten, die Sie verwenden können Update-Befehl –

+0

Ich habe herausgefunden, wie Sie das Feld jetzt in Java einfügen. Aber ich muss auch das neue Feld in alle meine Datensätze einfügen, so dass jeder Datensatz ein anderes Array hat. dh Aufzeichnung 1 "EntityAlchemy": [ { "Name": "DZ Bank", "EntityType": "Gesellschaft", "Relevanz": 0.0, "SentimentScore": 0.0, "CountInText": 0 } und dann 2 "EntityAlchemy" aufnehmen: [ { "Name": "DZ", "EntityType": "Wie auch immer", "Relevanz": 1,0, "SentimentScore": 0.0, "CountInText": 0 } ist es möglich, verschiedene gleichzeitig einzufügen? – sp0030

Verwandte Themen