You are currently browsing legacy 3.0 version of documentation. Click here to switch to the newest 4.2 version.

We can help you with migration to the latest RavenDB

Contact Us Now
see on GitHub

Session: Querying: How to use intersect?

To return only documents that match all provided sub-queries we have introduced Intersect extension that enables us to do server-side intersection queries.

Syntax

IRavenQueryable<T> Intersect<T>(this IQueryable<T> self) { ... }

Return Value
IRavenQueryable Instance implementing IRavenQueryable interface containing additional query methods and extensions.

Example

// return all T-shirts that are manufactured by 'Raven'
// and contain both 'Small Blue' and 'Large Gray' types
List<TShirt> tshirts = session
		.Query<TShirt, TShirts_ByManufacturerColorSizeAndReleaseYear>()
		.Where(x => x.Manufacturer == "Raven")
		.Intersect()
		.Where(x => x.Types.Any(t => t.Color == "Blue" && t.Size == "Small"))
		.Intersect()
		.Where(x => x.Types.Any(t => t.Color == "Gray" && t.Size == "Large"))
		.ToList();