Beispiel #1
0
        protected override global::MongoDB.Driver.MongoCursor <global::MongoDB.Bson.BsonDocument> Query(MongoDBVisitor visitor)
        {
            var parentQuery = (ParentQuery)this.ContentQuery;

            MongoDBQueryTranslator translator = new MongoDBQueryTranslator();

            var children = ((IEnumerable <TextContent>)(translator.Translate(parentQuery.ChildrenQuery)).Execute());

            if (parentQuery.ParentFolder != null)
            {
                visitor.SetQuery(MongoDBHelper.EQIgnoreCase("FolderName", parentQuery.ParentFolder.FullName));
            }

            if (children.Count() > 0)
            {
                visitor.SetQuery(QueryBuilder.Query.In("UUID", children.Select(it => BsonHelper.Create(it.ParentUUID)).ToArray()));

                return(parentQuery.ParentSchema.GetCollection().Find(visitor.QueryComplete));
            }

            return(null);
        }
Beispiel #2
0
        protected override void VisitWhereEquals(Content.Query.Expressions.WhereEqualsExpression expression)
        {
            var query = MongoDBHelper.EQIgnoreCase(expression.FieldName, expression.Value);

            SetQuery(query);
        }