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); }
protected override void VisitWhereEquals(Content.Query.Expressions.WhereEqualsExpression expression) { var query = MongoDBHelper.EQIgnoreCase(expression.FieldName, expression.Value); SetQuery(query); }