MongoDB генерирует один и тот же ObjectID для дубликатов документов

Я только что изменил свой запрос, чтобы рассказать, и теперь я получаю быстрый ответ, например, до того, как он был взят 4 секунды, и теперь он занимает 1 секунду, оба результата с 8 миллионами записей в таблице MessageIn. Но все еще ищете лучший результат.

DECLARE @GatewayId INT = 4;
DECLARE @PriorityIn TABLE(
    [PriorityId] [INT] NOT NULL
);

INSERT INTO @PriorityIn
SELECT PriorityId FROM  PriorityProviders WHERE ProviderId = @GatewayId AND Type = 0


SELECT count(Id) From MessageIn m
LEFT JOIN @PriorityIn o on m.PriorityId = o.PriorityId
WHERE ScheduleDate < GetDate() AND CurrentStatus in (0,3,6) AND 
((ProviderId is null AND o.PriorityId is not null) 
OR ProviderId = @GatewayId)
0
задан warnerm06 19 January 2019 в 03:14
поделиться

1 ответ

Причина, по которой вы получаете эту ошибку, заключается в том, что вы пытаетесь вставить новый документ со значением a для индексированного ключа (где индексированный ключ помечен как Уникальный), который уже присутствует в одном из документов в MongoDB .

Если вы не проиндексировали ни один из ключей в явном виде, то вы должны включить поле «_id» также в документ при вставке, а поле «_id» должно иметь то же значение, что и ранее вставленный документ.

Пожалуйста, перейдите по ссылкам ниже:

https://docs.mongodb.com/manual/core/index-unique/

https : //docs.mongodb.com/manual/indexes/

0
ответ дан Jay 19 January 2019 в 03:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: