2017-09-18 2 views
0

J'essaie le nouveau point MongoDb mais je ne peux pas définir les règles sur les champs.Comment insérer un document dans le point MongoDB avec la règle activée sur un champ

Lorsque j'essaie d'insérer un document, il collectionne sans règles sur les champs ou seulement dans le document de niveau supérieur, il insère bien. Mais dès que j'ajoute un Champ, j'écris une règle, il donne une erreur "le document ne peut pas être écrit". Même lorsque la règle est "{}", ce qui signifie toujours vrai. Vous trouverez ci-dessous un exemple de pipeline Pipeline et règle définie.

TOP NIVEAU DOCUMENT: R {} W "blanc" FIELDS: nom W {}

Insérer Pipeline Etape 1:

Service: "built-in", Action "literal", 
args:"{ 
    "items": [ 
    { 
     "name": "Don Giovanni", 
     "cuisine": "Italian", 
     "location": "Chicago, IL", 
     "comments": [ 
     { 
      "user_id": "leporello", 
      "comment": "Molto bene" 
     }, 
     { 
      "user_id": "59b256814fdd1f75d5e1dce3", 
      "comment": "insertion" 
     }, 
     { 
      "user_id": "59b256814fdd1f75d5e1dce3", 
      "comment": "good food" 
     }, 
     { 
      "user_id": "59b256814fdd1f75d5e1dce3", 
      "comment": "very good food" 
     }, 
     { 
      "user_id": "59b256814fdd1f75d5e1dce3", 
      "comment": "insertion" 
     } 
     ] 
    } 
    ] 
}" 

Stage 2 : 
Service :"mongodb-atlas", Action:"insert",database:"guidebook", collection:"restaurants" 

Répondre

0

Si votre règle d'écriture en haut Stitch essaie de trouver une règle inscriptible pour chacun des champs/tableaux/sous-documents qui s'appliqueraient au document que vous essayez d'insérer.

Dans votre cas, il ne suffit pas d'avoir un écrire tous (c.-à-{}) règle pour le champ name, vous avez besoin d'un pour l'autre champ présent dans votre document (c.-à-_id, location, cuisine et comments), comme indiqué dans l'image ci-dessous. Notez que vous devez déclarer le champ comments comme Array et non Any pour que votre insertion fonctionne.

Vous pouvez en savoir plus sur les règles Stitch interaction dans la documentation du point: https://docs.mongodb.com/stitch/rules/mongodb-rules/#mongodb-service-rules-interaction

Stitch rules

+2

Mon problème est que j'avais pas écrit pour écrire « tous les autres champs » et a laissé blank.As bientôt comme j'ai écrit une règle pour cela, ça marche bien. –