2017-11-27 15 views
0

私は配列にJSONを保存する必要がありますが、私は- Total.js

コントローラ/ 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":[]} 

あなたは私が名 - >レポート/ entries->レポート/任命でreq.bodyを救うために持っていることを見て、私はやることがわかりで()と右()を挿入すると思いますか?

答えて

0

これはソリューションが、はるかに効果的ではない:私ははるかに簡単なフィルタリングのための新しいフィルタフィールドを追加することにより、すべての文書を更新することをお勧めします

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#api~DatabaseBuilder~builder.filter

+0

私は未定義のオブジェクトを返すので、私はまだdoc.entriesを読んでいません –

+0

Total.jsフレームワークの最新バージョンをインストールしてください。私は自分のデータで自分のコードをテストしており、いつも正しく動作します。私にTotal.js Messengerを書いてください、それはより速くなります。 –