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

如何使用MongoDB C#驱动添加数组最后元素属性的过滤条件

解决方案

要给现有查询添加**Versions数组最后一个元素的Group属性不等于"12345"**的条件,你可以利用MongoDB的数组操作特性结合C#驱动的过滤器实现,具体代码如下:

完整查询过滤器代码

var applicationFilter = Builders<App>.Filter.Eq(a => a.IsDeleted, false) &    
    Builders<App>.Filter.Exists(a => a.Versions, true) &    
    Builders<App>.Filter.SizeGt(a => a.Versions, 0) &
    // 新增条件:匹配最后一个Version的Group不等于"12345"
    Builders<App>.Filter.Ne(a => a.Versions[-1].Group, "12345");

补充说明

C# MongoDB驱动支持通过索引器a.Versions[-1]直接表示数组的最后一个元素,底层会自动转换为MongoDB的$arrayElemAt: ["$Versions", -1]操作。如果需要显式写出MongoDB操作逻辑,也可以用以下写法:

var lastVersionGroupFilter = Builders<App>.Filter.Ne(
    "{ $arrayElemAt: ['$Versions', -1] }.Group", 
    "12345"
);

var applicationFilter = Builders<App>.Filter.Eq(a => a.IsDeleted, false) &    
    Builders<App>.Filter.Exists(a => a.Versions, true) &    
    Builders<App>.Filter.SizeGt(a => a.Versions, 0) &
    lastVersionGroupFilter;

两种写法功能完全一致,前者更简洁,后者更直观展示底层MongoDB操作逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 09:52:27