小编dgo*_*rur的帖子

MongoDB嵌套数组查询

我已将此问作为对另一个问题的评论,并在mongodb-user上发布了一个问题.到目前为止没有回复,所以我要求另外提问.

文件规定:

如果该字段包含数组,则$ in运算符选择其字段包含一个数组的文档,该数组包含至少一个与指定数组中的值匹配的元素(例如,等等)

我正在使用:

mongod --version:
db version v2.2.2, pdfile version 4.5
Thu May 30 12:19:12 git version: d1b43b61a5308c4ad0679d34b262c5af9d664267

mongo --version:
MongoDB shell version: 2.0.4
Run Code Online (Sandbox Code Playgroud)

在MongoDB shell中:

db.nested.insert({'level1': {'level2': [['item00', 'item01'], ['item10', 'item11']]}})
Run Code Online (Sandbox Code Playgroud)

这是根据文档应该工作的查询列表,以及它们产生的结果:

为什么这不起作用?

> db.nested.findOne({'level1.level2.0': 'item00'})
null
Run Code Online (Sandbox Code Playgroud)

为什么我需要$ all?

> db.nested.findOne({'level1.level2.0': {'$all': ['item00']}})
{
    "_id" : ObjectId("51a7a4c0909dfd8872f52ed7"),
    "level1" : {
        "level2" : [
            [
                "item00",
                "item01"
            ],
            [
                "item10",
                "item11"
            ]
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)

至少有下列之一应该可以工作,对吧?

> db.nested.findOne({'level1.level2.0': {'$in': ['item00']}})
null

> …
Run Code Online (Sandbox Code Playgroud)

mongodb nosql mongodb-query

40
推荐指数
3
解决办法
6万
查看次数

Maven强制更新快照依赖项

这是mvn -version的结果:

Apache Maven 3.0.4 (r1232337; 2012-01-17 00:44:56-0800)
Maven home: /usr/share/maven
Java version: 1.7.0_67, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.7.0_67.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.8.5", arch: "x86_64", family: "mac"
Run Code Online (Sandbox Code Playgroud)

假设我有快照依赖:

<dependency>
    <groupId>org.puzzled</groupId>
    <artifactId>foo</artifactId>
    <version>1.0.4-SNAPSHOT</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

我在本地仓库中下载了该快照的副本.但随后其他开发人员进行了改进,并对foo-1.0.4-SNAPSHOT.jar进行了更新.我想通过从远程存储库下载它来向Maven发出一个执行命令以更新该依赖关系.

根据应对这种对SO和许多其他问题,如果我这样做

mvn clean -U package
Run Code Online (Sandbox Code Playgroud)

它应该(重新)下载所有依赖项.对?这不是发生的事情.它下载快照依赖项的元数据,推断(并且错误地),不需要更新.我必须删除本地.m2存储库中的关联子目录,以便Maven从远程仓库更新快照版本,即使使用-U标志也是如此.

这是一个错误,还是我错过了什么?

maven

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

Java中的InputStream的多个读者

我有一个InputStream,我正在读取字符.我希望多个读者访问此InputStream.似乎一种合理的方法是将传入的数据写入StringBuffer或StringBuilder,并让多个读者读取它.不幸的是,不推荐使用StringBufferInputStream.StringReader读取一个字符串,而不是一个不断更新的可变对象.我有什么选择?写我自己的?

java io inputstream

12
推荐指数
4
解决办法
2万
查看次数

散文的版本控制

似乎有人必须已经这样做了,但我找不到我正在寻找的最终产品.

使用文本版本控制系统是费力的.你需要在每个句子的末尾添加换行符,甚至在长句中.看一下git源代码,似乎通过更改一些检查的例程,'\n'应该可以让git(或任何其他版本控制系统)匹配'\n'或模式'\\.\s'.然而,这是一项需要精心完成的任务,或者我可以看到事情非常糟糕.

有谁知道有人已经这样做了吗?还是其他任何选择?

谢谢!

git version-control text

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

T扩展了Comparable <T>

我有以下课程.

class MyClass<T>
Run Code Online (Sandbox Code Playgroud)

它使用以下构造函数.

MyClass(Comparator<T> comparator, Collection<? extends T> data)
Run Code Online (Sandbox Code Playgroud)

它有一个在构造函数中设置的字段,如下所示:

this.data = Collections.unmodifiableCollection(data);
Run Code Online (Sandbox Code Playgroud)

在T实​​现Comparable的特殊情况下,我不想要传入比较器,因为我可以使用自然顺序.所以我认为我应该能够使用这个构造函数:

public <T extends Comparable<T>> MyClass(Collection<T> data)
Run Code Online (Sandbox Code Playgroud)

但显然存在类型不匹配:无法Collection<T> to Collection<? extends T>在上面的赋值语句中转换.我尝试了各种各样的事情:添加更多通用参数,等等,但都没有工作.我似乎无法指定一个绑定说:如果你有一个实现Comparable的类型T,那就做一些简单的事情吧.

有任何想法吗?

谢谢.

java generics

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

MagicMock 和包装

为什么“wraps”关键字对于 MagicMock 对象的作用不一致?普通方法会传递到包装对象,但不会传递“特殊”方法。在下面的测试中,第一个断言通过,第二个断言失败。

import mock
import unittest


class Foo(object):
    def bar(self):
        return 1

    def __len__(self):
        return 3


class TestWrap(unittest.TestCase):
    def test(self):
        foo = Foo()
        c = mock.MagicMock(wraps=foo)
        assert c.bar() == 1 # Passes
        assert len(c) == 3 # Fails
Run Code Online (Sandbox Code Playgroud)

我在文档中找不到任何表明这一点的内容。我错过了什么吗?

python mocking python-unittest magicmock

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

禁用或取消设置特定的bash完成

我调用了

complete -o default -F _foo foo
Run Code Online (Sandbox Code Playgroud)

要为命令启用bash自动完成功能foo。现在,我希望它消失,同时保留bash可能知道的所有其他完成功能。我该怎么做呢?我想要一个

complete --remove foo
Run Code Online (Sandbox Code Playgroud)

bash autocomplete

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