Filtering using ElemMatch method with raw MQL query does not work on typed collection

I have a model like this:   
 internal class RepositoryItem {
        internal RepositoryItem(BsonDocument data, bool locked) {
            Id = Guid.NewGuid();
            Locked = locked;
            if (data != null) {
                Data = data;
            }
        }

        internal RepositoryItem(JObject data, bool locked)
                : this(BsonDocument.Parse(data.ToString()), locked) { }

        internal RepositoryItem() { }

        public BsonDocument Data { get; set; }

        public Guid Id { get; protected set; }

        public bool Locked { get; protected set; }
    }

IFindFluent<RepositoryItem, RepositoryItem> CreateQuery(IMongoCollection<RepositoryItem> type, GenericObjectQuery objectQuery) {

            var query = type.Find(
                    string.IsNullOrEmpty(objectQuery.QueryText)
                            ? FilterDefinition<RepositoryItem>.Empty
                            : Builders<RepositoryItem>.Filter.ElemMatch(i => i.Data, objectQuery.QueryText)); // this does not work if QueryText is something like "{ \"RecordID\": 5 }" considering that RecordID field exists.

            if (objectQuery.IsSorted) {
                query = objectQuery.SortDirection == SortDirection.Ascending
                                ? query.SortBy(i => i.Data[objectQuery.SortBy])
                                : query.SortByDescending(i => i.Data[objectQuery.SortBy]);
            }

            return query.Skip(objectQuery.Offset).Limit(objectQuery.Limit);
        }

And if objectQuery.QueryText is empty it successfully returns all documents from the collection.
And when the query is not empty, it throws an error: The serializer for field ‘Data’ must implement IBsonArraySerializer and provide item serialization info.
How to make it work?