@@ -102,6 +102,50 @@ public static IMongoQuery And(params IMongoQuery[] queries)
102
102
return And ( ( IEnumerable < IMongoQuery > ) queries ) ;
103
103
}
104
104
105
+ /// <summary>
106
+ /// Tests that the value of the named element has all of the specified bits clear.
107
+ /// </summary>
108
+ /// <param name="name">The name.</param>
109
+ /// <param name="bitmask">The bitmask.</param>
110
+ /// <returns>An IMongoQuery.</returns>
111
+ public static IMongoQuery BitsAllClear ( string name , long bitmask )
112
+ {
113
+ return new QueryDocument ( name , new BsonDocument ( "$bitsAllClear" , bitmask ) ) ;
114
+ }
115
+
116
+ /// <summary>
117
+ /// Tests that the value of the named element has all of the specified bits set.
118
+ /// </summary>
119
+ /// <param name="name">The name.</param>
120
+ /// <param name="bitmask">The bitmask.</param>
121
+ /// <returns>An IMongoQuery.</returns>
122
+ public static IMongoQuery BitsAllSet ( string name , long bitmask )
123
+ {
124
+ return new QueryDocument ( name , new BsonDocument ( "$bitsAllSet" , bitmask ) ) ;
125
+ }
126
+
127
+ /// <summary>
128
+ /// Tests that the value of the named element has any of the specified bits clear.
129
+ /// </summary>
130
+ /// <param name="name">The name.</param>
131
+ /// <param name="bitmask">The bitmask.</param>
132
+ /// <returns>An IMongoQuery.</returns>
133
+ public static IMongoQuery BitsAnyClear ( string name , long bitmask )
134
+ {
135
+ return new QueryDocument ( name , new BsonDocument ( "$bitsAnyClear" , bitmask ) ) ;
136
+ }
137
+
138
+ /// <summary>
139
+ /// Tests that the value of the named element has any of the specified bits set.
140
+ /// </summary>
141
+ /// <param name="name">The name.</param>
142
+ /// <param name="bitmask">The bitmask.</param>
143
+ /// <returns>An IMongoQuery.</returns>
144
+ public static IMongoQuery BitsAnySet ( string name , long bitmask )
145
+ {
146
+ return new QueryDocument ( name , new BsonDocument ( "$bitsAnySet" , bitmask ) ) ;
147
+ }
148
+
105
149
/// <summary>
106
150
/// Tests that at least one item of the named array element matches a query (see $elemMatch).
107
151
/// </summary>
@@ -1072,6 +1116,50 @@ public static IMongoQuery All<TValue>(Expression<Func<TDocument, IEnumerable<TVa
1072
1116
return new QueryBuilder < TDocument > ( ) . All ( memberExpression , values ) ;
1073
1117
}
1074
1118
1119
+ /// <summary>
1120
+ /// Tests that the value of the named element has all of the specified bits clear.
1121
+ /// </summary>
1122
+ /// <param name="memberExpression">The member expression.</param>
1123
+ /// <param name="bitmask">The bitmask.</param>
1124
+ /// <returns>An IMongoQuery.</returns>
1125
+ public static IMongoQuery BitsAllClear ( Expression < Func < TDocument , object > > memberExpression , long bitmask )
1126
+ {
1127
+ return new QueryBuilder < TDocument > ( ) . BitsAllClear ( memberExpression , bitmask ) ;
1128
+ }
1129
+
1130
+ /// <summary>
1131
+ /// Tests that the value of the named element has all of the specified bits set.
1132
+ /// </summary>
1133
+ /// <param name="memberExpression">The member expression.</param>
1134
+ /// <param name="bitmask">The bitmask.</param>
1135
+ /// <returns>An IMongoQuery.</returns>
1136
+ public static IMongoQuery BitsAllSet ( Expression < Func < TDocument , object > > memberExpression , long bitmask )
1137
+ {
1138
+ return new QueryBuilder < TDocument > ( ) . BitsAllSet ( memberExpression , bitmask ) ;
1139
+ }
1140
+
1141
+ /// <summary>
1142
+ /// Tests that the value of the named element has any of the specified bits clear.
1143
+ /// </summary>
1144
+ /// <param name="memberExpression">The member expression.</param>
1145
+ /// <param name="bitmask">The bitmask.</param>
1146
+ /// <returns>An IMongoQuery.</returns>
1147
+ public static IMongoQuery BitsAnyClear ( Expression < Func < TDocument , object > > memberExpression , long bitmask )
1148
+ {
1149
+ return new QueryBuilder < TDocument > ( ) . BitsAnyClear ( memberExpression , bitmask ) ;
1150
+ }
1151
+
1152
+ /// <summary>
1153
+ /// Tests that the value of the named element has any of the specified bits set.
1154
+ /// </summary>
1155
+ /// <param name="memberExpression">The member expression.</param>
1156
+ /// <param name="bitmask">The bitmask.</param>
1157
+ /// <returns>An IMongoQuery.</returns>
1158
+ public static IMongoQuery BitsAnySet ( Expression < Func < TDocument , object > > memberExpression , long bitmask )
1159
+ {
1160
+ return new QueryBuilder < TDocument > ( ) . BitsAnySet ( memberExpression , bitmask ) ;
1161
+ }
1162
+
1075
1163
/// <summary>
1076
1164
/// Tests that at least one item of the named array element matches a query (see $elemMatch).
1077
1165
/// </summary>
@@ -1660,6 +1748,74 @@ public IMongoQuery And(params IMongoQuery[] queries)
1660
1748
return And ( ( IEnumerable < IMongoQuery > ) queries ) ;
1661
1749
}
1662
1750
1751
+ /// <summary>
1752
+ /// Tests that the value of the named element has all of the specified bits clear.
1753
+ /// </summary>
1754
+ /// <param name="memberExpression">The member expression.</param>
1755
+ /// <param name="bitmask">The bitmask.</param>
1756
+ /// <returns>An IMongoQuery.</returns>
1757
+ public IMongoQuery BitsAllClear ( Expression < Func < TDocument , object > > memberExpression , long bitmask )
1758
+ {
1759
+ if ( memberExpression == null )
1760
+ {
1761
+ throw new ArgumentNullException ( "memberExpression" ) ;
1762
+ }
1763
+
1764
+ var serializationInfo = _serializationInfoHelper . GetSerializationInfo ( memberExpression ) ;
1765
+ return Query . BitsAllClear ( serializationInfo . ElementName , bitmask ) ;
1766
+ }
1767
+
1768
+ /// <summary>
1769
+ /// Tests that the value of the named element has all of the specified bits set.
1770
+ /// </summary>
1771
+ /// <param name="memberExpression">The member expression.</param>
1772
+ /// <param name="bitmask">The bitmask.</param>
1773
+ /// <returns>An IMongoQuery.</returns>
1774
+ public IMongoQuery BitsAllSet ( Expression < Func < TDocument , object > > memberExpression , long bitmask )
1775
+ {
1776
+ if ( memberExpression == null )
1777
+ {
1778
+ throw new ArgumentNullException ( "memberExpression" ) ;
1779
+ }
1780
+
1781
+ var serializationInfo = _serializationInfoHelper . GetSerializationInfo ( memberExpression ) ;
1782
+ return Query . BitsAllSet ( serializationInfo . ElementName , bitmask ) ;
1783
+ }
1784
+
1785
+ /// <summary>
1786
+ /// Tests that the value of the named element has any of the specified bits clear.
1787
+ /// </summary>
1788
+ /// <param name="memberExpression">The member expression.</param>
1789
+ /// <param name="bitmask">The bitmask.</param>
1790
+ /// <returns>An IMongoQuery.</returns>
1791
+ public IMongoQuery BitsAnyClear ( Expression < Func < TDocument , object > > memberExpression , long bitmask )
1792
+ {
1793
+ if ( memberExpression == null )
1794
+ {
1795
+ throw new ArgumentNullException ( "memberExpression" ) ;
1796
+ }
1797
+
1798
+ var serializationInfo = _serializationInfoHelper . GetSerializationInfo ( memberExpression ) ;
1799
+ return Query . BitsAnyClear ( serializationInfo . ElementName , bitmask ) ;
1800
+ }
1801
+
1802
+ /// <summary>
1803
+ /// Tests that the value of the named element has any of the specified bits set.
1804
+ /// </summary>
1805
+ /// <param name="memberExpression">The member expression.</param>
1806
+ /// <param name="bitmask">The bitmask.</param>
1807
+ /// <returns>An IMongoQuery.</returns>
1808
+ public IMongoQuery BitsAnySet ( Expression < Func < TDocument , object > > memberExpression , long bitmask )
1809
+ {
1810
+ if ( memberExpression == null )
1811
+ {
1812
+ throw new ArgumentNullException ( "memberExpression" ) ;
1813
+ }
1814
+
1815
+ var serializationInfo = _serializationInfoHelper . GetSerializationInfo ( memberExpression ) ;
1816
+ return Query . BitsAnySet ( serializationInfo . ElementName , bitmask ) ;
1817
+ }
1818
+
1663
1819
/// <summary>
1664
1820
/// Tests that at least one item of the named array element matches a query (see $elemMatch).
1665
1821
/// </summary>
0 commit comments