小编Ray*_*oal的帖子

在Pymongo的全文搜索

即将推出的MongoDB 2.4支持全文搜索.

我们在mongo shell中使用命令执行此操作,例如

db.players.runCommand("text", {
    "search": "alice", 
    "project": {"name": 1, "_id": 0}, 
    "limit": 10})
Run Code Online (Sandbox Code Playgroud)

现在把它移植到pymongo时,我们必须处理runCommandpymongo Collection类没有定义的事实.我能够弄清楚真正的命令是什么,所以这在shell中起作用:

db.runCommand({
    "text": "players", 
    "search": "alice", 
    "project": {"name": 1, "_id": 0}, 
    "limit": 10})
Run Code Online (Sandbox Code Playgroud)

哪个有效.但这并没有告诉我如何在pymongo中使用它.我试过了:

db.command({
    "text":"players", 
    "pipeline": [
        ("search","alice"), ("project",{"name":1,"_id":0}), ("limit",10)
    ]})
Run Code Online (Sandbox Code Playgroud)

哪个不起作用(它说"没有指定搜索").我也尝试过:

db.command({
    "text": "players", 
    "search": "alice", 
    "project": {"name": 1, "_id": 0}, 
    "limit":10})
Run Code Online (Sandbox Code Playgroud)

这当然失败了:"没有这样的cmd:项目".

如果我只使用searchlimit,我可以让事情发挥作用

db.command({
    "text": "players", 
    "search": "alice",
    "limit": 10})
Run Code Online (Sandbox Code Playgroud)

但我想filterprojectpymongo 一起使用.有没有人使用项目和过滤器进行全文搜索?

旁白:也许有一种很好的方法可以从shell命令推断pymongo命令的形状?

mongodb pymongo

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

如何在集成测试阶段使用Spring嵌入式数据库初始化脚本?

我可以使用Spring以编程方式创建和初始化嵌入式数据库:

@Before
public void setUp() {
    database = new EmbeddedDatabaseBuilder()
            .setType(EmbeddedDatabaseType.H2)
            .addScript("schema.sql")
            .addScript("init.sql")
            .build();
    ....
}
Run Code Online (Sandbox Code Playgroud)

或通过Spring配置:

<jdbc:initialize-database data-source="dataSource">
  <jdbc:script location="classpath:schema.sql"/>
  <jdbc:script location="classpath:init.sql"/>
</jdbc:initialize-database>
Run Code Online (Sandbox Code Playgroud)

我在这里的脚本schema.sqlinit.sql存储在目录中src/test/resources.因此,如果使用嵌入式数据库的测试运行:

mvn test
Run Code Online (Sandbox Code Playgroud)

然后存在的文件src/test/resources可用,一切都很好.

但现在假设我想在集成测试中使用嵌入式数据库和嵌入式Web服务器(Jetty或嵌入式Tomcat),通过

mvn integration-test
Run Code Online (Sandbox Code Playgroud)

现在处于这个后期阶段,我想做一个几乎是端到端的测试,即在嵌入式数据库中存在某些数据时,为Web服务命中某些URL会返回预期的HTTP响应.但此时,嵌入式Web服务器中部署的战争没有文件,src/test/resources因此我的初始化脚本不存在,我收到错误

引起:java.io.FileNotFoundException:类路径资源[schema.sql]无法打开,因为它不存在

现在,如果我把脚本放进去,一切都会有效,src/main/resources但这些脚本只是用于填充嵌入式数据库进行测试,而且根本不属于 war文件.有没有人知道如何设置集成测试,以便可以使用一个修剪过的数据库,而不会污染将要部署的实际war文件?

我希望Spring的嵌入式数据库初始化可以使用除文件之外的其他东西.我想到了JNDI,但这似乎要求使用测试数据的资源定义来污染web.xml文件,该资源定义将(再次)出现在可部署的战争中.或者也许有使用货物的选择?我不知道Spring的一些程序化技巧?

spring integration-testing embedded-database

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

榆树无限卷轴

我正在Elm中构建一个简单的应用程序,只显示一个在另一个下面的div列表,我想添加无限滚动功能,每次页面的最后一个div出现在视口中时添加新内容.

在Elm中有没有办法知道div何时出现在视口中?作为替代方案,有一种方法可以跟踪鼠标滚动事件作为信号吗?

javascript infinite-scroll elm

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

JavaScript运算符===可证明是否可传递?

JavaScript的古怪弱类型==运算符可以很容易地显示为不可传递,如下所示:

var a = "16";
var b = 16;
var c = "0x10";
alert(a == b && b == c && a != c); // alerts true
Run Code Online (Sandbox Code Playgroud)

我想知道是否有任何类似的技巧可以使用舍入错误,Infinity或者NaN可能显示===为非传递,或者它是否可以被证明确实是传递性的.

javascript equals transitivity

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

JavaScript Window对象总是可以访问?

我们看到这种方法一直在使用:

(function (window) {
    var document = window.document,
        location = window.location,
        navigator = window.navigator;
})(window)
Run Code Online (Sandbox Code Playgroud)

在研究上面的代码片段时,我想知道为什么像全局可访问的对象window作为参数传递给函数.可能是这样的:

  1. 开发人员不能100%确定地知道可以从本地函数范围内访问窗口吗?
  2. 这是一种很好的做法,因为您可以向阅读代码的其他开发人员明确表达您的意图.
  3. 你已经看过John Resig这样做,所以一定是手指舔好了!

你怎么看?

javascript scope window

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

如何用should.js做一个deepEqual断言?

我试图用should.js(最新版本)做一个deepEqual断言但没有取得任何成功.我可以让事情与之合作,equal但不是deepEqual.事实上,我发现没有deepEqual方法.

这是我尝试过的:

> require('should')
{...}
> > var x = Number(8)
undefined
> x.should.equal(8)
{ obj: 8 }
> x.should.equal(9)
AssertionError: expected 8 to equal 9
at ....
> x.should.deepEqual(8)
TypeError: Object #<Object> has no method 'deepEqual'
Run Code Online (Sandbox Code Playgroud)

很公平.现在看should,我看到它是一个吸气剂:

> Object.getOwnPropertyDescriptor(Object.prototype, 'should')
{ get: [Function],
  set: [Function],
  enumerable: false,
  configurable: true }
Run Code Online (Sandbox Code Playgroud)

既然它是一个吸气剂,我该如何检查其键?这几乎有效:

> Object.keys(Object.prototype.should)
[ 'obj' ]
Run Code Online (Sandbox Code Playgroud)

但后来我明白了

> Object.getOwnPropertyDescriptor(should.obj)
{ value: undefined,
  writable: false,
  enumerable: false,
  configurable: false }
Run Code Online (Sandbox Code Playgroud)

所以我现在很困惑.我想知道会发生什么事情should …

javascript node.js should.js deepequals

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

如何从XMLReader获取属性

我有一些HTML,我正在转换为Spanned使用Html.fromHtml(...),我有一个自定义标签,我正在使用它:

<customtag id="1234">
Run Code Online (Sandbox Code Playgroud)

所以我已经实现了一个TagHandler处理这个自定义标记,如下所示:

public void handleTag( boolean opening, String tag, Editable output, XMLReader xmlReader ) {

    if ( tag.equalsIgnoreCase( "customtag" ) ) {

        String id = xmlReader.getProperty( "id" ).toString();
    }
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我得到一个SAX异常,因为我认为"id"字段实际上是一个属性,而不是属性.但是,没有getAttribute()办法XMLReader.所以我的问题是,如何使用此获取"id"字段的值XMLReader?谢谢.

java tag-soup android xmlreader

9
推荐指数
3
解决办法
5312
查看次数

从x86-64打印浮点数似乎需要保存%rbp

当我编写一个简单的汇编语言程序,与C库链接,在Ubuntu上使用gcc 4.6.1,我尝试打印一个整数,它工作正常:

        .global main
        .text
main:
        mov     $format, %rdi
        mov     $5, %rsi
        mov     $0, %rax
        call    printf
        ret
format:
        .asciz  "%10d\n"
Run Code Online (Sandbox Code Playgroud)

按预期打印5.

但是现在如果我进行一些小改动,并尝试打印浮点值:

        .global main
        .text
main:
        mov     $format, %rdi
        movsd   x, %xmm0
        mov     $1, %rax
        call    printf
        ret
format:
        .asciz  "%10.4f\n"
x:
        .double 15.5
Run Code Online (Sandbox Code Playgroud)

这个程序赛格故障不打印任何东西.只是一个悲伤的段错误.

但我可以通过推动和弹出来解决这个问题%rbp.

        .global main
        .text
main:
        push    %rbp
        mov     $format, %rdi
        movsd   x, %xmm0
        mov     $1, %rax
        call    printf
        pop     %rbp
        ret
format:
        .asciz  "%10.4f\n"
x:
        .double 15.5
Run Code Online (Sandbox Code Playgroud)

现在它可以工作,打印15.5000.

我的问题是:为什么推送和弹出%rbp …

floating-point assembly x86-64

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

是否可以在title属性中添加html?

有没有办法将实际的html代码放在表行元素的title属性中?我的目标是不仅弹出文本,还弹出一些信息图形,因此鼠标悬停事件不是模态的.我走错了方向吗?

这个表已经使用了jquery数据表,但我不相信它可以做那种事件.

<tr title='This activity will be open to registration on April 31st' >
.....
</tr>
Run Code Online (Sandbox Code Playgroud)

html javascript jquery

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

在Swift 3中替换enumerateSubstringsInRange

我正在将代码从Swift 2升级到Swift 3并遇到此错误:

wordcount.swift:7:5:错误:类型'字符串'的值没有任何部件'enumerateSubstringsInRange' line.enumerateSubstringsInRange(范围选择:.ByWords){W, ,,_在

在Swift 2中,此方法来自String编译器可识别的扩展.

我无法在Swift 3库中找到此方法.它出现在Foundation这里的文档中:

https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/index.html#//apple_ref/occ/instm/NSString/enumerateSubstringsInRange:options:usingBlock:

我的整个脚本是:

import Foundation

var counts = [String: Int]()

while let line = readLine()?.lowercased() {
    let range = line.characters.indices
    line.enumerateSubstringsInRange(range, options: .ByWords) {w,_,_,_ in
        guard let word = w else {return}
        counts[word] = (counts[word] ?? 0) + 1
    }
}

for (word, count) in (counts.sorted {$0.0 < $1.0}) {
    print("\(word) \(count)")
}
Run Code Online (Sandbox Code Playgroud)

它适用于Swift 2.2(模块化我已经为Swift 3做的更改,例如lowercase- > lowercasedsort- …

string foundation ios swift

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