如何保存mongoDB C#驱动程序的大文件的一部分

时间:2015-10-20 03:28:46

标签: c# mongodb c#-4.0 orm

您好我有一份文件如下

{
   "_id" : ObjectId("54c955492b7c8eb21818bd09"),
   "address" : {
      "street" : "2 Avenue",
      "zipcode" : "10075",
      "building" : "1480",
      "coord" : [ -73.9557413, 40.7720266 ],
   },
   "borough" : "Manhattan",
   "cuisine" : "Italian",
   "grades" : [
      {
         "date" : ISODate("2014-10-01T00:00:00Z"),
         "grade" : "A",
         "score" : 11
      },
      {
         "date" : ISODate("2014-01-16T00:00:00Z"),
         "grade" : "B",
         "score" : 17
      }
   ],
   "name" : "Vella",
   "restaurant_id" : "41704620"
}

我们假设这个文档太大了,我想保存或更新菜单值而不保存整个文档,是否可以从.net ORM包装器中获取?

Ex: - 我只想改变价值"美食"如果没有保存整个文档,请注意真实文档是如此之大,是否存在性能问题?

1 个答案:

答案 0 :(得分:1)

使用update$set修改现有文档的特定字段。

在shell中:

db.mycoll.update({"_id": ObjectId("54c955492b7c8eb21818bd09")}, {$set: {cuisine: "Fast"}})

在带有无类型集合的C#中:

var filter = Builders<BsonDocument>.Filter.Eq("_id", new ObjectId("54c955492b7c8eb21818bd09"));
var update = Builders<BsonDocument>.Update.Set("cuisine", "Fast");
var result = await collection.UpdateOneAsync(filter, update);