Сохранить данные в массив, вложенный в базу данных nosql - Total.js
Я должен сохранить JSON в массиве, но я не могу в
Контроллеры /api.js
exports.install = function() {
F.cors('/api/db/*',['post'],false)
F.route('/api/db/',saveNoSql,['post']);
};
function saveNoSql(){
console.log('dentro saveNoSql');
var self = this;
var body = self.req.body;
var users = NOSQL('db');
users.find().make(function(builder){
builder.and()
builder.where('name','Report');
builder.where('entries['+0+'].name','Report');
builder.callback(function(err,model){
})
})
}
базы данных /db.nosql
{"name":"Report","user":"rep","password":"admin","odata":"false","entries":[{"name":"Report","appointment":[{"idOrder":"1","order":"order 1","supplier":"fornitore 1","hours":"numero ore","actions":"icone azioni"}]},{"name":"Admin","appointment":[]}]}
{"name":"Admin","user":"adm","password":"admin","odata":"true","entries":[]}
{"name":"Mike","user":"mike","password":"admin","odata":"true","entries":[]}
Здесь вы видите, что я должен сохранить req.body в имя-> Отчет / записи-> Отчет / назначение, и я думаю, чтобы сделать это с помощью find() и insert(), верно?
1 ответ
Это решение, но не очень эффективное:
var users = NOSQL('db');
users.find().filter(doc => doc.name === 'Report' && doc.entries && doc.entries[0] && doc.entries[0].name === 'Report').callback(function(err, model) {
console.log(err, model);
});
Я рекомендую обновить все документы, добавив новые поля фильтра для более простой фильтрации. Документация: https://docs.totaljs.com/latest/en.html