0

我可以collection.Insert<T>用于插入实例和collection.Save<T>更新它们,我看不出为什么 MongoDb 的 c# 驱动程序不提供类似的方法来删除特定实例。他们的Remove方法要求 IMongoQuery 参数,这似乎需要硬编码属性名称,例如Query.EQ("Id", BsonValue.Create(id)). 我想指定整个实例来删除它Remove<T>,或者使用 RemoveById,或者使用特定输入类型构建类似 LINQ 的查询,或者任何其他方式来摆脱属性硬编码, - 我在 MS Entity 中使用的东西框架 POCO。有没有这样的方法?

更新:好的,我找到了一种方法:

IMongoQuery mq = new QueryDocument(entity.ToBsonDocument());
customers.Remove(mq);

这是唯一的方法吗?

谢谢

4

1 回答 1

1

目前还没有一种方法可以满足您的要求,但它是一个经常被要求的功能。您可以为此 JIRA 请求投票支持该功能:

https://jira.mongodb.org/browse/CSHARP-457

您发现的方法有效,但相当笨拙。它使用整个文档作为查询。是的,它确实与您尝试删除的文档相匹配,但是通过网络传输的数据比必要的要多。

于 2012-04-30T22:50:19.167 回答