Здравствуйте, я пытаюсь реализовать приведенную ниже логику в 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, ниже приведены мои условия:
- Найдите запись использования с user_id, если запись вообще не существует, создайте ее.
- Если пользователь существует, найдите имя модуля и, если он найден, проверьте действия и обновите / вставьте, который не существует.
- Если пользователь существует, но имя модуля отсутствует, введите имя модуля с действиями.
Я новичок в Монго, и я видел, что доступны $ addToSet и $ set opertor.