Lia*_*ill 6 c# asp.net mongodb
我正在使用最新的 MongoDB C# 驱动程序,但我的一个查询出现问题。我正在尝试更新 Mongo 中文档中的字段并通过其 id 字段识别该文档。我已经编写了类似的查询,可以根据其他字段过滤文档,但由于某些原因,它不适用于 id 字段。
我的查询:
public static async Task<bool> Delete(string Guid)
{
var database = new MongoDB();
var thingsCollection = database.Things;
var builder = Builders<ThingsModel>.Filter;
var filter = builder.Eq("_id", Guid);
var update = Builders<ThingsModel>.Update
.Set("IsActive", false);
var updateResult = await thingsCollection.UpdateOneAsync(filter, update);
return true;
}
Run Code Online (Sandbox Code Playgroud)
我意识到我每次都会返回 true,但这只是为了测试。从 Mongo 返回的 updateResult 对象表示,尽管它是 thingsCollection 中的一个事物,并且 Guid 作为参数传入,但它没有找到任何匹配项。我还将 Guid 属性标记为集合中的 ID 字段,如下所示:
[BsonId]
public Guid Guid { get; set; }
Run Code Online (Sandbox Code Playgroud)
我也知道我需要将名称从 Guid 更改为其他名称,因为这是不好的做法,但一次只做一件事:) 我感谢任何帮助!
您的命名可能有问题。
使用 linqu 语法我们可以得到这个(_id 用作 id 字段):
var update = Builders<ThingsModel>.Update.Set(a => a.IsActive, false);
var result = _collection.UpdateOne(model => model._id == _id, update);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8171 次 |
| 最近记录: |