MongoDB .Net Driver - 从存在于多个文档中的数组中提取多个元素
MongoDB .Net Driver - Pull multiple elements from arrays that exist in multiple documents
我有这段代码从 'fruits' 数组中提取多个元素,它对数据库中的所有 'stores' 执行此操作:
db.stores.update(
{ },
{ $pull: { fruits: { $in: [ "apples", "bananas" ] } } },
{ multi: true }
)
如何使用 .Net 驱动程序将其传输到 C# 代码?
UpdateManyAsync
方法应该从命名空间 MongoDB.Driver IMongoCollection
使用,但我不知道如何进行特定的过滤。
Mongo .NET 驱动程序支持使用 untyped document (BsonDocument
) 编写脚本。
Update many documents, equivalent to { multi: true }
您可以实现如下:
MongoClient _client = new MongoClient("mongo connection string");
IMongoDatabase _database = _client.GetDatabase("your DB");
IMongoCollection<Store> _collection = _database.GetCollection<Store>("store");
string[] removedFruits = new string[] { "apples", "bananas" };
FilterDefinition<Store> filter = Builders<Store>.Filter.Empty;
UpdateDefinition<Store> update =
new BsonDocument("$pull",
new BsonDocument("fruits",
new BsonDocument("$in", BsonArray.Create(removedFruits))
)
);
_collection.UpdateMany(filter, update);
public class Store
{
public string[] Fruits { get; set; }
// Other properties
}
我有这段代码从 'fruits' 数组中提取多个元素,它对数据库中的所有 'stores' 执行此操作:
db.stores.update(
{ },
{ $pull: { fruits: { $in: [ "apples", "bananas" ] } } },
{ multi: true }
)
如何使用 .Net 驱动程序将其传输到 C# 代码?
UpdateManyAsync
方法应该从命名空间 MongoDB.Driver IMongoCollection
使用,但我不知道如何进行特定的过滤。
Mongo .NET 驱动程序支持使用 untyped document (BsonDocument
) 编写脚本。
Update many documents, equivalent to
{ multi: true }
您可以实现如下:
MongoClient _client = new MongoClient("mongo connection string");
IMongoDatabase _database = _client.GetDatabase("your DB");
IMongoCollection<Store> _collection = _database.GetCollection<Store>("store");
string[] removedFruits = new string[] { "apples", "bananas" };
FilterDefinition<Store> filter = Builders<Store>.Filter.Empty;
UpdateDefinition<Store> update =
new BsonDocument("$pull",
new BsonDocument("fruits",
new BsonDocument("$in", BsonArray.Create(removedFruits))
)
);
_collection.UpdateMany(filter, update);
public class Store
{
public string[] Fruits { get; set; }
// Other properties
}