You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MongoDB和C#中基于双字段匹配列表与集合数据

基于多字段匹配的MongoDB查询:用find方法即可实现

完全可以只用find方法实现需求,不需要依赖aggregate。

MongoDB的find支持通过$in操作符匹配多字段组合的文档,你只需要把C#列表中的对象转换成包含name和Code键值对的数组,作为$in的参数即可。

MongoDB原生查询示例

db.yourCollection.find({
  $in: [
    { name: "user1", Code: 1 },
    { name: "user2", Code: 1 },
    { name: "user1", Code: 2 }
  ]
})

这个查询会精准匹配集合中name和Code同时与数组内任意一个对象完全一致的文档,返回结果就是你预期的两条数据。

对应的C#驱动代码示例

你可以直接将C#列表转换为匿名对象列表或者BsonDocument列表来构建查询条件:

// 方式1:使用匿名对象构建过滤条件
var filterItems = myList.Select(item => new { item.name, item.Code }).ToList();
var filter = Builders<MyObject>.Filter.In(x => new { x.name, x.Code }, filterItems);
var matchedDocs = collection.Find(filter).ToList();

或者用BsonDocument的方式:

// 方式2:使用BsonDocument构建过滤条件
var bsonItems = myList.Select(item => new BsonDocument
{
    { "name", item.name },
    { "Code", item.Code }
}).ToList();
var filter = new BsonDocument("$in", new BsonArray(bsonItems));
var matchedDocs = collection.Find(filter).ToList();

这种方式直接通过find就能完成多字段组合的匹配,逻辑简洁且性能高效,完全不需要用到aggregate。

内容的提问来源于stack exchange,提问作者Mohammad Taherian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 14:02:24