2017-08-21 8 views
0

Ich habe dieses Schema für meine db:Azure CosmoDB - MongoDb - C# - Wie erhöht man einen Wert innerhalb eines Arrays von Object?

{ 
    "_id" : "test_schema", 
    "t" : 5, 
    "p" : [ 
     { 
      "id" : "207", 
      "v" : 4 
     }, 
     { 
      "id" : "309", 
      "v" : 1 
     } 
.... 
    ] 
} 

Ich versuche zu $ inc des v Wert von p.id gleich "207". Ich bin derzeit in der Lage, den t Wert mit diesem Code inc:

var result = collection.UpdateOneAsync(new BsonDocument("_id", "test_schema"}), new BsonDocument("$inc", new BsonDocument("t", 4)), new UpdateOptions() { IsUpsert = true }).Result; 

aber whe ich versuche, einen Wert auf Array nichts zu aktualisieren passieren (auch keinen Fehler!):

var result = collection.UpdateOneAsync(new BsonDocument(new Dictionary<string, object>() { { "_id", "test_schema" }, { "p.id", "207" } }), new BsonDocument("$inc", new BsonDocument("p.v", 4)), new UpdateOptions() { IsUpsert = true }).Result; 

Nach der MongoDB-Dokumentation bemerkte ich, dass "pv", 4 "p. $. V" sein sollte, aber in cosmodb eine nicht gültige $ -Symbol-Ausnahme auslösen sollte.

Irgendwelche Vorschläge?

Antwort

Verwandte Themen