C# 使用C在mongodb中按id字段删除文档#
我正在尝试按id删除文档,它是ObjectId类型,我确实已将字符串转换为ObjectId并作为参数传递以从集合中删除,但我无法删除该记录 我不知道背后的实际原因是什么,正在寻找解决方案,下面是我的代码示例:C# 使用C在mongodb中按id字段删除文档#,c#,mongodb,mongodb-.net-driver,C#,Mongodb,Mongodb .net Driver,我正在尝试按id删除文档,它是ObjectId类型,我确实已将字符串转换为ObjectId并作为参数传递以从集合中删除,但我无法删除该记录 我不知道背后的实际原因是什么,正在寻找解决方案,下面是我的代码示例: public void DeleteRecords(string objectID) { try { // Create server settings to pass connection
public void DeleteRecords(string objectID)
{
try
{
// Create server settings to pass connection string, timeout, etc.
MongoServerSettings settings = new MongoServerSettings();
settings.Server = new MongoServerAddress("localhost", 27017);
// Create server object to communicate with our server
MongoServer server = new MongoServer(settings);
MongoDatabase myDB = server.GetDatabase("DemoMongoDB");
MongoCollection<BsonDocument> records = myDB.GetCollection<BsonDocument>("Records");
//var query = Query<Records>.EQ(fd => fd._id, ObjectId.Parse(name));
var query = Query<Records>.EQ(e => e._id, new BsonObjectId(objectID));
records.Remove(query);
}
catch (Exception ex)
{
}
}
public void DeleteRecords(字符串objectID)
{
尝试
{
//创建服务器设置以传递连接字符串、超时等。
MongoServer设置=新建MongoServer设置();
settings.Server=新的MongoServer地址(“localhost”,27017);
//创建与服务器通信的服务器对象
MongoServer服务器=新的MongoServer(设置);
MongoDatabase myDB=server.GetDatabase(“DemoMongoDB”);
MongoCollection记录=myDB.GetCollection(“记录”);
//var query=query.EQ(fd=>fd.\u id,ObjectId.Parse(name));
var query=query.EQ(e=>e._id,新的BsonObjectId(objectID));
记录。删除(查询);
}
捕获(例外情况除外)
{
}
}
尝试下面的代码,看看是否正常工作
var query = Query.EQ("_id", new BsonObjectId("objectID"));
或
最后,这对我是有效的,没有将字符串转换为对象id,并将其作为参数作为字符串本身传递
var query = Query.EQ("_id", objectID);
records.Remove(query);
有什么例外吗?如果是这样,请在此处发布异常代码运行良好,没有任何异常,但文档不会被删除。此代码的可能重复对我有效,无需将字符串转换为对象id,谢谢:)var query=query.EQ(“_id”,name);记录。删除(查询);叫什么名字?是你的田园诗吗名字是我的目标
var query = Query.EQ("_id", objectID);
records.Remove(query);