查找在List< valuettype >中有特定字段值的BsonDocuments

本文关键字:字段 BsonDocuments List valuettype 查找 | 更新日期: 2023-09-27 18:02:50

我在MongoDB数据库中有两个集合。Collection1有一个类型为Guid(实际上是string)的字段,名为Col2DocRef,它引用了Collection2中文档的_id

我目前有一个List<Guid>表示Collection2中的文档的_id s。我想在Collection1中找到所有文档,其中Col2DocRef字段等于List<Guid>中的任何值。

使用AnyIn是正确的方法吗?

List<Guid> guids = ... // Creating by searching in Collection2 and deserializing
Builders<BsonDocument>.Filter.AnyIn("Col2DocRef", guids);

查找在List< valuettype >中有特定字段值的BsonDocuments

您可以像下面这样直接使用FindAsync()传递过滤器,假设这些集合在您的应用程序接口中具有相应的强类型POCO。

List<Guid> guids = ... // Creating by searching in Collection2 and deserializing
var collection = db.GetCollection<Collection1>("Collection1");
var result = collection.FindAsync(col => guids.Contains(col.Id)).ToListAsync();