static void QueryTest() { var session = new MongoSession(_connectionString) as IMongoSession; var col_q = session.AsQuerable<TestData>(); //var server = MongoServer.Create(_connectionString); //var db = server.GetDatabase("common"); //var col = db.GetCollection<TestData>("TestData", SafeMode.False); //var col_q = col.AsQueryable<TestData>(); //var query = from d in col_q where d.Timestamp > DateTime.Parse("2012-3-1") select d; //var query = from d in col_q where d.InnerData.IntData >= 4 select d; //var query = from d in col_q where d.InnerData.BoolList[0] == true && d.InnerData.BoolList[1] == false select d; //var query = from d in col_q where d.IntData < 10 && d.InnerData.BoolList[0] == true && d.InnerData.BoolList[1] == false select d; var query = from d in col_q where d.IntData < 10 && d.InnerData.BoolList[0] == true && Query.EQ("InnerData.BoolList.1", false).Inject() select d; //var query = from d in col_q where d.DecimalData > 6.0m select d; // decimals stored as strings in mongo, so can't query on them //var query = from d in col_q where d.InnerData.BoolList.Contains(true) select d; //var query = from d in col_q where d.IntData == 7 && d.InnerData.BoolList.Contains(true) select d; var mq = (MongoQueryable<TestData>)query; var imq = mq.GetMongoQuery(); var mongoQueryStr = imq.ToString(); var q2 = query.MongoQueryStr(); PrintQueryResults(query); }