在文档数组中插入新文档

时间:2012-05-06 16:42:23

标签: mongodb

我想将新文档添加到具有外键“User”

的以下文档中
{
  name:himani,
  User:[
    {
      _id:e25ffgf627627,
      Name:User1
    },
    {
      _id:fri2i2jhjh9098,
      Name:User2
    }
  ]
};

下面是我的代码,我试图在现有文档中添加新文档。 我的代码是:

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);

我想向User数组添加一个新文档。我通过上面的代码来做这件事,但它没有用。请告诉我正确的方法。

1 个答案:

答案 0 :(得分:1)

我根本不了解你的文档结构......我在这里找到的唯一“用户”数组是一个名为“3”的字段。您的代码确实可以工作并将文档附加到“3”数组中。以下是运行代码后的结果。也许你可以更清楚地了解在你“追加”用户之后你的文档是什么样的。

{
  "_id":ObjectId("4fa7d965ce48f3216c52c6c7"),
  "name":"himani",
  "3":[
    {
      "1":"heena",
      "2":"divya",
      "values":[ 2, 5 ]
    },
    {
      "count":"2"
    }
  ]
}