从ObjectID列表中查找所有MongoDB文档 [英] Find all MongoDB documents from a list of ObjectIDs
本文介绍了从ObjectID列表中查找所有MongoDB文档的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试从MongoDB数据库中查找所有文档,该数据库在我的C#ID列表中具有ObjectID.这是我正在尝试的:
I am trying to find all documents from a MongoDB database, which has the ObjectID from my list of IDs with C#. Here's what I'm trying:
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列表进行查找并不可行,因为它需要一个参数.
productIDs
is simply a list of ObjectIDs from the MongoDB database. Obviously trying to find by a list of IDs doesn't work that way, as it takes a single parameter.
如何.Find()
产品ID列表中的所有文档?
How do I .Find()
all the documents from my list of product IDs?
推荐答案
这是强类型方法.
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;
}
这篇关于从ObjectID列表中查找所有MongoDB文档的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文