Я пытаюсь получить из большой коллекции список поля hash256. Я использую драйвер MongoDB для C#, bau è вернуть эту ошибку: «Ошибка команды отличная: отличная слишком большая, ограничение 16 МБ». ища в Интернете, я нашел, что причиной является ограничение MongoDB в 10 МБ для объекта ответа, но я не могу найти решение.
Я нашел об объекте DistinctIterable, но не могу найти в c# Driver, и я думаю, что этот объект должен присутствовать только в Java Driver,
Кто-нибудь может мне помочь? Огромное спасибо
ConcurrentBag<InvoicePackage> InvoicePackageList = new ConcurrentBag<InvoicePackage>();
IMongoCollection<InvoicePackage> InvoicePackageCollection = null;
IMongoCollection<InvoicePackageSimple> InvoicePackageSimpleCollection = null;
//Impostazione collection Fatture Passive
InvoicePackageCollection = MongoDatabase.GetCollection<InvoicePackage>(oMongoEnvironment.PassiveCollection);
InvoicePackageSimpleCollection = MongoDatabase.GetCollection<InvoicePackageSimple>(oMongoEnvironment.PassiveSimpleCollection);
//Ricerca valori da filtrare
VatNumberFiscalCodeList.AddRange(InvoicePackageList.Select(x => x.Source.FatturaElettronicaHeader.CessionarioCommittente.DatiAnagrafici.IdFiscaleIVA.IdCodice));
VatNumberFiscalCodeList.AddRange(InvoicePackageList.Select(x => x.Source.FatturaElettronicaHeader.CessionarioCommittente.DatiAnagrafici.CodiceFiscale));
VatNumberFiscalCodeList = VatNumberFiscalCodeList.Distinct().ToList();
List<String> VatNumberFiscalCodeList = new List<String>();
FilterDefinition<InvoicePackage> oFilterDefinition = null;
FilterDefinition<InvoicePackageSimple> oFilterDefinitionSimple = null;
//Impostazione filtro per reperimento chiavi univoche ordinarie (IDSDI e HashSHA256)
oFilterDefinition =
(
Builders<InvoicePackage>.Filter.In(x => x.Source.FatturaElettronicaHeader.CessionarioCommittente.DatiAnagrafici.IdFiscaleIVA.IdCodice, VatNumberFiscalCodeList)
|
Builders<InvoicePackage>.Filter.In(x => x.Source.FatturaElettronicaHeader.CessionarioCommittente.DatiAnagrafici.CodiceFiscale, VatNumberFiscalCodeList)
);
//Impostazione filtro per reperimento chiavi univoche semplificate (IDSDI e HashSHA256)
oFilterDefinitionSimple =
(
Builders<InvoicePackageSimple>.Filter.In(x => x.Source.FatturaElettronicaHeader.CessionarioCommittente.IdentificativiFiscali.IdFiscaleIVA.IdCodice, VatNumberFiscalCodeList)
|
Builders<InvoicePackageSimple>.Filter.In(x => x.Source.FatturaElettronicaHeader.CessionarioCommittente.IdentificativiFiscali.CodiceFiscale, VatNumberFiscalCodeList)
);
//Reperimento HashSHA256 già presenti su MongoDB (Ordinarie + semplificate)
ExpressionFieldDefinition<InvoicePackage, String> oHashSHA256ExpressionFieldDefinition = new ExpressionFieldDefinition<InvoicePackage, String>(x => x.HashSHA256);
ExpressionFieldDefinition<InvoicePackageSimple, String> oHashSHA256ExpressionFieldDefinitionSimple = new ExpressionFieldDefinition<InvoicePackageSimple, String>(x => x.HashSHA256);
List<String> HashSHA256EsistentiList = new List<String>();
HashSHA256EsistentiList.AddRange(InvoicePackageCollection.Distinct<String>(oHashSHA256ExpressionFieldDefinition, oFilterDefinition).ToList());
HashSHA256EsistentiList.AddRange(InvoicePackageSimpleCollection.Distinct<String>(oHashSHA256ExpressionFieldDefinitionSimple, oFilterDefinitionSimple).ToList());
задание в стиле че мой родной герой
HashSHA256EsistentiList.AddRange(InvoicePackageSimpleCollection.Distinct<String>`(oHashSHA256ExpressionFieldDefinitionSimple, oFilterDefinitionSimple).ToList());