Любой обходной путь для вставки поля в mongodb, начинающийся со знака $ - PullRequest
0 голосов
/ 05 сентября 2018

Я получаю динамические параметры запроса в моем REST API, который содержит ключи, начинающиеся со знака $. например, $ format и $ cost.

Мне нужно сохранить их в MongoDB.

Когда я проверял решение в сети, я сталкивался с решением, которое говорит, что нужно преобразовать мой $ или точку (.) В эквивалентный юникод и сохранить в базе данных.

Документация MongoDB гласит, что мы не можем ни вставить имя поля, начинающееся с доллара ($), ни поле, содержащее в нем точку (.).

Есть ли другой способ сохранить его в базе данных? Потому что это динамический ключ, и я не могу его контролировать.

Существуют ли какие-либо встроенные классы в библиотеке Mongo, которые внутренне преобразовали бы мое поле в понятный для Mongo формат?

Спасибо за ответы.

1 Ответ

0 голосов
/ 05 сентября 2018

Рассмотрим следующий (невозможный) документ:

{
    $randomKey1 : 'data1',
    .randomKey2: {f1:'aa',f2:'bb'}
}

Вместо этого попробуйте сохранить следующую структуру:

{
    fields:[
    {key:"$randomKey1", value: "data1"},
    {key:".randomKey2", value: {f1:'aa',f2:'bb'}},
    ]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...