예제 #1
0
        public void TestFindAnddOr()
        {
            //Llenamos datos
            (new InsertModifyDeleteTest()).TestInsert();

            ConfigManager.Out = Console.Out;

            var Countries = CountryCollection.Instance;
            var Persons = MongoMapperCollection<Person>.Instance;

            Countries.Find(
                    Query.Or(MongoQuery<Country>.Eq(c=>c.Code, "ES"), Query<Country>.EQ(c=>c.Code, "UK")));
            Assert.AreEqual(Countries.Count, 2);

            Persons.Find(
                    Query.And(MongoQuery<Person>.Eq(p => p.Age, 25), MongoQuery<Person>.Eq(p => p.Country, "ES")));
            Assert.AreEqual(Persons.Count, 2);

            Persons = new MongoMapperCollection<Person>();
            Persons.Find(
                    Query.And(MongoQuery<Person>.Eq(p => p.Age, 35), MongoQuery<Person>.Eq(p => p.Country, "%")));
            Assert.AreEqual(1, Persons.Count);

            Persons = new MongoMapperCollection<Person>();
          
            Persons.Find(MongoQuery<Person>.Eq(p => p.Name, "%perez%"));
            Assert.AreEqual(2, Persons.Count);


            Persons.Find(MongoQuery<Person>.Eq(p => p.Name, "j%"));
            Assert.AreEqual(2, Persons.Count);

            Persons.Find(MongoQuery<Person>.Eq(p => p.Name, "%Z"));
            Assert.AreEqual(3, Persons.Count);

            
            Persons.Find(MongoQuery<Person>.Eq(p => p.Married, false));
            Assert.AreEqual(3, Persons.Count);

            Persons.Find(Query.And(MongoQuery<Person>.Eq(p => p.Age, 25), MongoQuery<Person>.Eq(p => p.Country, "ES")));
            Assert.AreEqual(2, Persons.Count);


            foreach (Person p in Persons)
            {
                Assert.AreEqual(p.Age, 25);
                Assert.AreEqual(p.Country, "ES");
            }

            Persons.Find(Query.And(MongoQuery<Person>.Eq(p => p.Age, 25), MongoQuery<Person>.Eq(p => p.Country, "US")));
            Assert.AreEqual(0, Persons.Count);

            Persons.Find(MongoQuery<Person>.Gt(p => p.Age, 25));
            Assert.AreEqual(2, Persons.Count);


            Persons.Find(MongoQuery<Person>.Gte(p => p.Age, 25));
            Assert.AreEqual(4, Persons.Count);

            Persons.Find(MongoQuery<Person>.Lt(p => p.Age, 25));
            Assert.AreEqual(1, Persons.Count);

            Persons.Find(MongoQuery<Person>.Lte(p => p.Age, 25));
            Assert.AreEqual(3, Persons.Count);


        }
예제 #2
0
        public void TestFindAnddOr()
        {
            var Countries = CountryCollection.Instance;
            var Persons   = MongoMapperCollection <Person> .Instance;

            Countries.Find(MongoQuery <Country> .Eq(c => c.Code, BsonNull.Value));

            //Llenamos datos
            (new InsertModifyDeleteTest()).TestInsert();

            ConfigManager.Out = Console.Out;



            Countries.Find(
                Countries.Filter.Or(MongoQuery <Country> .Eq(c => c.Code, "ES"), MongoQuery <Country> .Eq(c => c.Code, "UK")));
            Assert.AreEqual(Countries.Count, 2);

            Persons.Find(
                Persons.Filter.And(MongoQuery <Person> .Eq(p => p.Age, 25), MongoQuery <Person> .Eq(p => p.Country, "ES")));
            Assert.AreEqual(Persons.Count, 2);

            Persons = new MongoMapperCollection <Person>();
            Persons.Find(
                Persons.Filter.And(MongoQuery <Person> .Eq(p => p.Age, 35), MongoQuery <Person> .Eq(p => p.Country, "%")));
            Assert.AreEqual(1, Persons.Count);

            Persons = new MongoMapperCollection <Person>();

            Persons.Find(MongoQuery <Person> .Eq(p => p.Name, "%perez%"));
            Assert.AreEqual(2, Persons.Count);


            Persons.Find(MongoQuery <Person> .Eq(p => p.Name, "j%"));
            Assert.AreEqual(2, Persons.Count);

            Persons.Find(MongoQuery <Person> .Eq(p => p.Name, "%Z"));
            Assert.AreEqual(3, Persons.Count);


            Persons.Find(MongoQuery <Person> .Eq(p => p.Married, false));
            Assert.AreEqual(3, Persons.Count);

            Persons.Find(Persons.Filter.And(MongoQuery <Person> .Eq(p => p.Age, 25), MongoQuery <Person> .Eq(p => p.Country, "ES")));
            Assert.AreEqual(2, Persons.Count);


            foreach (Person p in Persons)
            {
                Assert.AreEqual(p.Age, 25);
                Assert.AreEqual(p.Country, "ES");
            }

            Persons.Find(Persons.Filter.And(MongoQuery <Person> .Eq(p => p.Age, 25), MongoQuery <Person> .Eq(p => p.Country, "US")));
            Assert.AreEqual(0, Persons.Count);

            Persons.Find(MongoQuery <Person> .Gt(p => p.Age, 25));
            Assert.AreEqual(2, Persons.Count);


            Persons.Find(MongoQuery <Person> .Gte(p => p.Age, 25));
            Assert.AreEqual(4, Persons.Count);

            Persons.Find(MongoQuery <Person> .Lt(p => p.Age, 25));
            Assert.AreEqual(1, Persons.Count);

            Persons.Find(MongoQuery <Person> .Lte(p => p.Age, 25));
            Assert.AreEqual(3, Persons.Count);
        }