小编Jak*_*zok的帖子

如何在Postgresql中验证JSON是否有效?

我有一个大型数据库,其中包含用JSON编写的分析数据.

我想过滤掉数据不正确的行:

  • 无效的json(有些行有类似的东西: '{"hello": "world'
  • 一些属性不是数组所以它会采取'{"products": [1,2,3]}'并将遗漏'{"products": 1}'

我想做那样的事情:

select * 
from analytics 
where (is_correct_json(json::json)) 
and (is_array(json::json->>'products'))
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

postgresql json

6
推荐指数
2
解决办法
4936
查看次数

Extjs 4,带有复选框和loadRecord的表单

在我的Extjs4应用程序中,我有一个网格和一个表单.

用户模型:

Ext.define('TestApplication.model.User', {
    extend: 'Ext.data.Model',
    fields: [
      { name: 'id', type: 'int', useNull: true },
      { name: 'email', type: 'string'},
      { name: 'name', type: 'string'},
      { name: 'surname', type: 'string'}
    ],
    hasMany: { model: 'Agency', name: 'agencies' },
});
Run Code Online (Sandbox Code Playgroud)

和原子能机构:

Ext.define('Magellano.model.Agency', {
  extend: 'Ext.data.Model',
  fields: [
    {name: 'id', type: 'int', useNull: true},
    {name: 'name', type: 'string'}
  ]
});
Run Code Online (Sandbox Code Playgroud)

然后在我的表单中我创建了复选框:

[...]
  initComponent: function() {
    var store = Ext.getStore('Agencies');
    var checkbox_values = {xtype: 'checkboxfield', name: 'agencies[]'};
    var checkboxes = []

    store.each(function(record){ …
Run Code Online (Sandbox Code Playgroud)

forms checkbox model extjs

5
推荐指数
1
解决办法
1万
查看次数

Cassandra LeveledCompactionStrategy和每次读取的高SSTable数

我们正在使用cassandra 2.0.17,我们有一个50%选择,40%更新和10%插入(无删除)的表.

为了获得这种表的高读取性能,我们发现建议使用LeveledCompactionStrategy(它应该保证99%的读取将从单个SSTable中完成).每天当我跑步时nodetool cfhistograms,每次阅读都会看到越来越多的SSTtables.第一天我们有1,比我们有1,2,3 ...
今天早上我看到了这个:

ubuntu@ip:~$ nodetool cfhistograms prodb groups | head -n 20                                                                                                                                
prodb/groups histograms

SSTables per Read
1 sstables: 27007
2 sstables: 97694
3 sstables: 95239
4 sstables: 3928
5 sstables: 14
6 sstables: 0
7 sstables: 19
Run Code Online (Sandbox Code Playgroud)

describe组返回:

CREATE TABLE groups (
  ...
) WITH
  bloom_filter_fp_chance=0.010000 AND
  caching='KEYS_ONLY' AND
  comment='' AND
  dclocal_read_repair_chance=0.100000 AND
  gc_grace_seconds=172800 AND
  index_interval=128 AND
  read_repair_chance=0.000000 AND
  replicate_on_write='true' AND
  populate_io_cache_on_flush='false' AND
  default_time_to_live=0 AND
  speculative_retry='99.0PERCENTILE' AND
  memtable_flush_period_in_ms=0 AND
  compaction={'class': 'LeveledCompactionStrategy'} AND
  compression={'sstable_compression': 'LZ4Compressor'}; …
Run Code Online (Sandbox Code Playgroud)

cassandra cassandra-2.0

5
推荐指数
1
解决办法
865
查看次数

我应该在Rails中放置SQL查询?

我应该在Rails中放置SQL查询的最佳实践是什么?

  • 我应该在模型中创建方法,例如:find_all_public_items,其中我使用了具有所有条件的find方法,然后在控制器中使用它们.就像我在一个地方有所有的查询,但我错过了每个查询应该完全适合需要的灵活性.

  • 我应该只在控制器中使用find/find_by_sql - 这样我就不会创建数以千计的方法,但是我无法控制控制器如何从数据库中吸取数据.

ruby-on-rails

3
推荐指数
2
解决办法
901
查看次数

Rails,Globalize 3和CRUD操作

我如何为我的模型编写表单,我正在使用globalize3进行翻译.我找不到任何示例,我在代码中找不到任何助手.我们的想法是将所有内容都放在一个表格中

text_field:title

text_field:title_fr

text_field:title_en

等等....

感谢您指点我的一些代码示例.

forms localization ruby-on-rails models

3
推荐指数
1
解决办法
1433
查看次数

MySQL:优化对记录范围的搜索.

我刚刚在我的应用程序中看到了一个非常慢的查询.表'新闻'有超过600.000条记录.

当我执行:

SELECT news.id FROM `news` WHERE (newstime between '2012-01-16 00:00:00' AND  '2012-01-16 23:59:59') AND ((MATCH(titolo, testo) AGAINST('"Public Administration" "SOMETHING" "ELSE" "ROMA" "MILANO"' IN BOOLEAN MODE))) ORDER BY newstime DESC LIMIT 23 OFFSET 0;
23 rows in set (26.32 sec)
Run Code Online (Sandbox Code Playgroud)

出于某种原因,MySQL没有执行范围选择(每天只有10,000条记录),它看起来像在整个表上搜索,因为当我从子查询中选择时:

 SELECT id FROM(SELECT * from news where newstime between '2012-01-16 00:00:00' AND  '2012-01-16 23:59:59') as N where ((MATCH(titolo, testo) AGAINST('"Public Administration" "FIAT" "SOMETHING" "ELSE" "ROMA" "MILANO"' IN BOOLEAN MODE))) ORDER BY newstime DESC LIMIT 23 OFFSET 0;

23 rows …
Run Code Online (Sandbox Code Playgroud)

mysql sql optimization full-text-search range

2
推荐指数
1
解决办法
2615
查看次数