Как вставить документ в строчку MongoDB с включенным правилом на поле
Я пробую новую строчку MongoDb, но не могу определить правила для полей.
Когда я пытаюсь вставить документ в коллекцию без каких-либо правил или только в документ верхнего уровня, он вставляется нормально. Но как только я добавляю поле и пишу правило, оно выдает ошибку "документ не может быть записан". Даже когда правило "{}", которое всегда оценивается как истина. Ниже приведен пример вставки конвейера и определенного правила.
ДОКУМЕНТ верхнего уровня: R {} W "пустое" ПОЛЕ: имя W {}
Вставить конвейер Этап 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"
1 ответ
Если ваше правило записи в документе верхнего уровня пустое, Stitch попытается найти правило записи для каждого из полей / массивов / поддокументов, которые будут применяться к документу, который вы пытаетесь вставить.
В вашем случае недостаточно иметь запись всех (т.е. {}
) Правило для name
поле, вам нужно одно для каждого поля, присутствующего в вашем документе (т.е. _id
, location
, cuisine
а также comments
), как показано на рисунке ниже. Обратите внимание, что вы должны объявить comments
поле как Array
не Any
для вашей вставки для работы.
Вы можете узнать больше о взаимодействии правил Stitch в документации по Stitch: https://docs.mongodb.com/stitch/rules/mongodb-rules/