gpt4 book ai didi

C# 和 MongoDB 使用 ObjectId 列表删除记录

转载 作者:可可西里 更新时间:2023-11-01 09:08:29 24 4
gpt4 key购买 nike

我需要使用官方 C# 驱动程序从 mongo db 中的集合中删除一些记录。我的代码如下。

public static void Remove(List<ObjectId> objectIds)
{
ObjectMongoCollection.Remove(Query.In("NotificationId", new BsonArray(objectIds)), SafeMode.True);
}

public class Notification
{
public static MongoCollection<Notification> ObjectMongoCollection = MongoHelper.GetMongoServer("MongoKelimeYarisi").GetDatabase("KelimeYarisi").GetCollection<Notification>("Notification");

[BsonId]
public ObjectId NotificationId { get; set; }
public int PlayerId { get; set; }
public string OpponentName { get; set; }
public string gameId { get; set; }
public DateTime CreateDate { get; set; }
public NotificationStatus Status = NotificationStatus.New;
public NotificationType Type = NotificationType.RoundSubmit;
public bool IsPushed { get; set; }

它运行没有错误,但似乎不起作用。如何使用 ObjectId 列表删除记录。

也试过:

ObjectMongoCollection.Remove(Query.In("_id", new BsonArray(objectIds)), SafeMode.True);

最佳答案

我使用了一种不同的方法来获取 mongo 查询并且有效。我构建了一个 linq 查询并将其转换为 mongo 查询。

    public static void Remove(List<ObjectId> objectIds)
{
var linqQuery = from n in ObjectMongoCollection.AsQueryable<Notification>() where n.NotificationId.In(objectIds) select n;
var mongoQuery = ((MongoQueryable<Notification>)linqQuery).GetMongoQuery();
ObjectMongoCollection.Remove(mongoQuery);
}

关于C# 和 MongoDB 使用 ObjectId 列表删除记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12199444/

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