gpt4 book ai didi

c# - 从 ObjectID 列表中查找所有 MongoDB 文档

转载 作者:太空宇宙 更新时间:2023-11-03 20:58:28 25 4
gpt4 key购买 nike

我正在尝试从 MongoDB 数据库中查找所有文档,该数据库具有我使用 C# 的 ID 列表中的 ObjectID。这是我正在尝试的:

public IEnumerable<Product> GetFromIDs(List<string> productIDs)
{
var client = new MongoClient(new MongoUrl("mongodb://localhost:27017"));
var db = client.GetDatabase("Database");
var products = db.GetCollection<Product>("Products")
.Find(x => x._id == productIDs)
.ToEnumerable();
return products;
}

productIDs 只是来自 MongoDB 数据库的 ObjectID 列表。显然,尝试通过 ID 列表查找不会以这种方式工作,因为它需要一个参数。

如何.Find() 我的产品 ID 列表中的所有文档?

最佳答案

这是强类型方式。

public IEnumerable<Product> GetFromIDs(List<string> productIDs)
{
var client = new MongoClient(new MongoUrl("mongodb://localhost:27017"));
var db = client.GetDatabase("Database");
var productsCollection = db.GetCollection<Product>("Products");

var productObjectIDs = productIDs.Select(id => new ObjectId(id));

var filter = Builders<Product>.Filter
.In(p => p.Id, productObjectIDs);

var products = productsCollection
.Find(filter)
.ToEnumerable();

return products;
}

关于c# - 从 ObjectID 列表中查找所有 MongoDB 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48039455/

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