小编Wil*_*ven的帖子

从MySQL JSON数据类型中提取不带引号的值

我已经开始在mysql 5.7中使用JSON数据类型.有没有办法提取没有引号的值?例如,在设置虚拟索引时.

例:

mysql> INSERT INTO test (data) VALUES ('{"type": "user" , 
"content" : { "username": "jdoe", "firstname" : "John", "lastname" : "Doe" } }');

mysql> SELECT json_extract(data,'$.type') FROM test;
+-----------------------------+
| json_extract(data,'$.type') |
+-----------------------------+
| "user"                      |
+-----------------------------+
Run Code Online (Sandbox Code Playgroud)

如何获得

+-----------------------------+
| json_extract(data,'$.type') |
+-----------------------------+
| user                        |
+-----------------------------+
Run Code Online (Sandbox Code Playgroud)

mysql json

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

来自输入的 Angular 2 组件样式

我们可以使用插值将输入写入模板:

@Component({
    selector: 'tag',
    inputs: ['color'],
    template: `
        <div id="test" style="background: {{color}}">
            Some text
        </div>
    `,  
})
class TestComponent {
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:是否有可能让它(以某种方式)像这样工作:

@Component({
    selector: 'tag',
    inputs: ['color'],
    template: `
        <div id="test">
            Some text
        </div>
    `,  
    styles: ['#test { background: {{color}}; }'],
})
class TestComponent {
}
Run Code Online (Sandbox Code Playgroud)

最后一次尝试不起作用,我似乎无法找到如何去做的方法。

谢谢。

css angular

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

使用 mysql JSON_SEARCH:为什么我必须引用数字?

我有一个“测试”表,其中包含一个 PK 字段“id”和一个 JSON 字段“json_data”。我做了以下插入:

insert into test (json_data) values (JSON_ARRAY(1,2));
Run Code Online (Sandbox Code Playgroud)

但是,如果我这样做

select * from test where JSON_SEARCH(json_data, 'all', 2) is not null;
Run Code Online (Sandbox Code Playgroud)

我得到“空集”。虽然如果我插入

insert into test (json_data) values (JSON_ARRAY("1","2"));
Run Code Online (Sandbox Code Playgroud)

然后重复查询,我确实终于得到了

+----+------------+
| id | json_data  |
+----+------------+
|  2 | ["1", "2"] |
+----+------------+
Run Code Online (Sandbox Code Playgroud)

为什么我必须引用这些数字才能对其进行查询?我宁愿不这样做,有什么办法吗?

mysql json

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

需要一个可嵌入的NoSQL数据库来处理~1Gb数据集,这些数据集持久存储在磁盘上

我正在构建一个Electron应用程序,我需要选择一个可嵌入的NoSQL数据库.实际上,该数据库应该包含存储在ArangoDB远程后端上的本地数据子集.我一直在互联网上搜索很多,但到目前为止还没有收敛到最终的候选人.我希望有人能从经验告诉我.

典型的数据集可能达到数万个文档,我可以想象这个集合随着时间的推移会达到~1Gb的情况.此外,我需要二级索引.

我看过PouchDB,UnQlite,LokiJS,LevelDB,NeDB,LinvoDB ......

最后,NeDB和LinvoDB似乎是合理的候选者,具有持久性到磁盘(类似SQlite),其中NeDB无法处理大型数据集; LinDBDB(NeDB的一个分支)似乎能够处理的东西.LinvoDB不会将整个数据库加载到内存中,但默认情况下会将"所有内容"编入索引,并将其保留在内存中.

另一方面,我试图跟踪关于他们的索引的几个对话,其中NeDB似乎在他们的文档中建议它们被保存到磁盘(https://github.com/louischatriot/nedb#indexing),一旦建成,然后再次出现被LinvoDB否定(对不起,我在大量的标签打开中丢失了许多引用/来源......),建议索引在发布时从头开始构建.(也可能是我误解了NeDB的文档.)

基本上,我需要的是一个针对Electron应用程序的JS数据库解决方案,它可能包含"可观的"但不是"巨大的"数据量.该应用程序的加载时间,应该是合理的(即不劝阻使用),同时响应(即,数据库应包括二级指标),并尊重用户的资源,尽可能多地.

问题:

  1. 有没有人有任何上述或其他嵌入式NoSQL数据库的经验,通过这些数据库可以推荐任何这些或其他数据库用于我的用例?
  2. 如果确实每次启动应用程序时都需要从头开始重建LinvoDB的索引,那么这可能是一个重要的性能损失(加载时间为几秒)?(当然我必须对此进行基准测试...)
  3. ArangoDB不可嵌入,但也许我应该考虑将其作为服务与我的原生应用程序一起部署?这个链接NoSQL数据库:ArangoDB似乎暗示开发人员自己不会劝阻这个.这会是矫枉过正和/或用户友好吗?表现受到了打击?

任何建议真的很感激.

database nosql embeddable nedb electron

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

在角度2中使用ipcRenderer; 触发变化检测

我正在渲染器过程中构建一个角度为2的电子应用程序.我的主进程与套接字服务器通信.每当用户连接到此服务器或断开连接时,我希望在视图中显示用户的状态.

为此,我使用电子的ipc从主要向渲染器进程发送消息,就像这样

socket.on('connect', function() {
  mainWindow.webContents.send('socket-connection-status', true);
});
socket.on('disconnect', function() {
  mainWindow.webContents.send('socket-connection-status', false);
});
Run Code Online (Sandbox Code Playgroud)

在我看来,我有一个(简化的)角度组件,就像这样

const ipc = require('electron').ipcRenderer;
@Component({
  selector: 'status-bar',
  template: '{{status}}'
})
export class StatusBarComponent {
  private status: string = "offline";
  constructor() {
    ipc.on('socket-connection-status', function(event, status) {
      if (status===true) {
        this.status = 'online';
      } else {
        this.status = 'offline';
      }
      console.log(status);  // Successfully logs true|false
      console.log(this.status);  // Successfully logs online|offline
    })
  }
}
Run Code Online (Sandbox Code Playgroud)

我成功地从主进程记录消息.

问题是角度2不"知道"电子的ipc,因此不会触发变化检测status.我看到有几个人在努力解决这个问题,但没有遇到过"真正的"解决方案.

我试图与注射来解决它ApplicationRef,ChangeDetectorRefngZone(参考:手动触发Angular2变化检测),但没有提供的方法(tick() …

electron angular2-changedetection angular

4
推荐指数
1
解决办法
1161
查看次数

通过Object.assign在Typescript类中扩展`this`

我有一个remote不是类实例本身的对象.由于Angular 2-5的性质,我需要在服务中包装此Object,以便将其注入组件中.该对象具有声明为' Remote' 的接口.

我将如何进行以下工作?

import { Injectable } from '@angular/core';
import { remote, Remote } from 'electron';

@Injectable()
export class RemoteService implements Remote {
    constructor() {
        Object.assign(this, remote);
    }
}
Run Code Online (Sandbox Code Playgroud)

即,如何创建一个RemoteService实例看起来像的服务类Remote,而不必手动包装所有remote成员?我不能使用extend,因为remote它本身不是一个类的实例,只是一个对象.

在上面的例子中,Typescript编译器会抱怨RemoteService错误地实现Remote(自然).有没有办法强迫编译器理解RemoteService为实现Remote

javascript typescript angular

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

类型不能分配给泛型类型

为什么不编译?

interface ITest { ... }    

class Test implements ITest { ... }

class Factory<T extends ITest> {
    constructor(private _Test: typeof Test) { }

    create(): T {
        return new this._Test();
    }
}
Run Code Online (Sandbox Code Playgroud)

它给出了Type 'Test' is not assignable to type 'T'. (property) Factory<T extends ITest>._Test: new () => Test.

我怎么能让它发挥作用

create(): ITest
Run Code Online (Sandbox Code Playgroud)

或通过

private _Test: any
Run Code Online (Sandbox Code Playgroud)

两者都不会真正沟通(代码方式)我所追求的.我能用它做任何事情吗?

typescript

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