gpt4 book ai didi

c# - 使用非通用 EQ-Query 从集合中删除文档

转载 作者:可可西里 更新时间:2023-11-01 10:43:46 25 4
gpt4 key购买 nike

我正在尝试使用非通用 EQ-Query 从我的集合中删除文档,但它没有删除任何内容。使用通用的 EQ-Query,文档被成功删除。

这是我存储在 MongoDB 中的对象。

public class UserDto {
public int Id { get; set; }

public string FirstName { get; set; }

public string LastName { get; set; }

public string UserName { get; set; }
}

这是我如何从集合中删除文档的示例代码。

var collection = database.GetCollection<UserDto>(typeof(UserDto).Name);

var single = collection.AsQueryable<UserDto>().FirstOrDefault(p => p.Id == 46);

// using the generic version will remove the document.
//var result = collection.Remove(Query<UserDto>.EQ(p => p.Id, 46));

// using the non-generic version will not remove the document.
var result = collection.Remove(Query.EQ("Id", BsonValue.Create(46)));

我的 MongoQuery 删除文档的设置有问题吗?

我正在使用 MongoDB 2.6.1 和 MongoDB Driver C# 1.9.1.221

最佳答案

如果您还没有配置,您的 Id 字段将被驱动程序视为文档的 Id。这意味着 MongoDB 中的字段将是“_id”而不是“Id”。

当您使用通用查询时,驱动程序会为您进行翻译。非通用查询应如下所示:

var result = collection.Remove(Query.EQ("_id", 46));

关于c# - 使用非通用 EQ-Query 从集合中删除文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23732014/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com