Quiero agregar un nuevo documento al siguiente documento que tiene una clave externa "Usuario"

{
  name:himani,
  User:[
    {
      _id:e25ffgf627627,
      Name:User1
    },
    {
      _id:fri2i2jhjh9098,
      Name:User2
    }
  ]
};

A continuación se muestra mi código en el que estoy tratando de agregar un nuevo documento al documento ya existente. Mi codigo es:

var server = MongoServer.Create("mongodb://username:password@localhost:27017/?safe=true");
SafeMode mode = new SafeMode(true);
SafeModeResult result = new SafeModeResult();
var db = server.GetDatabase("himani");
var coll = db.GetCollection("test");
BsonDocument document = new BsonDocument();
document.Add("name", "himani");
result = coll.Insert(document, mode);

BsonDocument nested = new BsonDocument();
nested.Add("1", "heena").Add("2", "divya");
BsonArray a = new BsonArray();
a.Add(2);
a.Add(5);
nested.Add("values", a);
document["3"] = new BsonArray().Add(BsonValue.Create(nested));
coll.Save(document);
var query = Query.And(
    Query.EQ("name", "himani"),
    Query.EQ("3.1", "heena")
);
var match = coll.FindOne(query);

var update = Update.AddToSet("3", new BsonDocument {{ "count", "2" }});
coll.Update(query, update);

Quiero agregar un nuevo documento a la matriz de usuarios. Estoy haciendo esto con el código anterior pero no funciona. Por favor, dígame la forma correcta de hacerlo.

-10
Himani Talesara 6 may. 2012 a las 20:42
Lo que quiero hacer es: quiero encontrar un documento que tenga algún valor de clave externa y luego agregarle más documentos.
 – 
Himani Talesara
6 may. 2012 a las 21:58
Pero, ¿no ha funcionado lo que ha intentado hasta ahora? ¿Puede mostrarnos lo que tiene hasta ahora para que podamos señalar dónde podría estar mal?
 – 
jdi
6 may. 2012 a las 23:02
@jdi. He pegado el código. ahora, por favor, dígame la forma correcta de hacerlo.
 – 
Himani Talesara
7 may. 2012 a las 11:08

1 respuesta

La mejor respuesta

No entiendo la estructura de su documento en absoluto ... y la única matriz de "usuario" que pude encontrar aquí fue un campo llamado "3". De hecho, su código funciona y agrega un documento a la matriz "3". El siguiente es el resultado después de ejecutar su código. Quizás podría ser más claro en cuanto a cómo desea que se vea su documento después de haber "agregado" un usuario.

{
  "_id":ObjectId("4fa7d965ce48f3216c52c6c7"),
  "name":"himani",
  "3":[
    {
      "1":"heena",
      "2":"divya",
      "values":[ 2, 5 ]
    },
    {
      "count":"2"
    }
  ]
}
1
jdi 7 may. 2012 a las 20:48
Creo que es realmente útil para los OP publicar preguntas sobre mongodb utilizando la sintaxis javascript nativa mongo, a diferencia de los formatos específicos del controlador del cliente que pueden agregar una capa de ofuscación sobre el objetivo. Es bueno que responda en formato JSON. Estoy de acuerdo en que incluso con el fragmento de código agregado de los OP, todavía no está claro cuál quieren que sea la estructura del documento.
 – 
jdi
7 may. 2012 a las 20:46