MongoDB-Node: внутри массива объекта динамически добавляется элемент массива ключ-значение - PullRequest
0 голосов
/ 05 апреля 2019

Здравствуйте, я пытаюсь реализовать приведенную ниже логику в API узла, который использует ватерлинию orm.

var modulename = 'список пользователей приложения' // опубликовать данные

var permissionname = 'insert, update, delete, list' // post data

var json = {    // db json
    "_id": "5ca6d98c8ba48b0c2028c24b",
    "user_id": "5c8740860c5dcf6c615c1ba3",
    "permissions": [
        {
            "dashboard": [
                "bar chart",
                "pie chart"
            ],
            "product management": [
                "update",
                "delete",
                "list"
            ]
        }
    ]
}

if (modulename in json.permissions[0]) {
    console.log('modulename exists')
    var moduleArray = json.permissions[0][modulename]
    if (moduleArray.includes(permissionname)) {
        console.log('permissionname exists')    // Don't to do anything on db
    } else {
        var splitedPermission = permissionname.split(',')
        splitedPermission.forEach(result => {
            json.permissions[0][modulename].push(result.trim())
        })
        console.log(json.permissions[0][modulename])
    }
} else {
    var arrayOfPermissions = permissionname.split(',').map(permissions => permissions.trim())
    json.permissions[0][modulename] = arrayOfPermissions
}



console.log(JSON.stringify(json))

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

Я хочу реализовать это на стороне mongodb, ниже приведены мои условия:

  1. Найдите запись использования с user_id, если запись вообще не существует, создайте ее.
  2. Если пользователь существует, найдите имя модуля и, если он найден, проверьте действия и обновите / вставьте, который не существует.
  3. Если пользователь существует, но имя модуля отсутствует, введите имя модуля с действиями.

Я новичок в Монго, и я видел, что доступны $ addToSet и $ set opertor.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...