Filtragem de documentos
Nesta página
Importante
Programa beta de sincronização de cluster para cluster
Este recurso está disponível apenas em mongosync
beta. Para saber mais, consulte Programa Beta de Cluster-to-Cluster Sync.
A partir de mongosync
beta 1.8, você pode migrar documentos seletivamente com base em condições específicas. Para limitar ainda mais quais documentos migram para o cluster de destino, você pode combinar a filtragem de documentos e a filtragem de namespace.
Para usar a filtragem de documentos, o cluster de origem e o cluster de destino devem usar uma versão compatível do MongoDB.
Sintaxe
O ponto de extremidade da API start
aceita um parâmetro documentFilter
opcional com a seguinte sintaxe:
"documentFilter" : { "field" : <field-name>, "matchValues" : [<field-values>] }
Campos de parâmetros
Campo | Tipo | necessidade | Descrição |
---|---|---|---|
field | String | Obrigatório | Nome do campo |
matchValues | Array | Obrigatório | Valor(s) de campo que um documento deve ter para migrar. |
Limitações
field
os nomes não podem conter pontos (.
) ou cifrões ($
).matchValues
os itens da array podem ser os seguintes tipos de BSON:Todos os tipos de números
Binário
Booleanos
Data hora
ObjectID
Strings
Os documentos não devem entrar ou sair do filtro durante a migração.
Se o filtro de documentos contiver uma string e pelo menos uma coleção migrada com agrupamento não padrão,
mongosync
falhará imediatamente.Se você chamar o endpoint da API de progresso e usar umfiltro de documentos , o campo de resposta
estimatedTotalBytes
retornaránull
.O cluster de destino não deve conter dados preexistentes que correspondam ao filtro.
Você não pode especificar um filtro de documento e definir o sinalizador
reversible
comotrue
.
Exemplos
Comece mongosync
com um filtro de documentos
O exemplo a seguir inicia uma tarefa de sincronização entre cluster0
e cluster1
. O cluster de origem é cluster0
e o cluster de destino é cluster1
.
cluster0
contém o banco de dados travel
, que inclui as collections restaurants
, attractions
e lodging
. Todos os documentos nas coleções restaurants
, attractions
e lodging
contêm um campo city
.
O documento documentFilter
neste exemplo filtra documentos onde o campo city
é Los Angeles
, New York
ou San Francisco
.
"documentFilter" : { field : "city", matchValues: [ "Los Angeles", "New York", "San Francisco" ] }