我已将此问作为对另一个问题的评论,并在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) 这是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标志也是如此.
这是一个错误,还是我错过了什么?
我有一个InputStream,我正在读取字符.我希望多个读者访问此InputStream.似乎一种合理的方法是将传入的数据写入StringBuffer或StringBuilder,并让多个读者读取它.不幸的是,不推荐使用StringBufferInputStream.StringReader读取一个字符串,而不是一个不断更新的可变对象.我有什么选择?写我自己的?
似乎有人必须已经这样做了,但我找不到我正在寻找的最终产品.
使用文本版本控制系统是费力的.你需要在每个句子的末尾添加换行符,甚至在长句中.看一下git源代码,似乎通过更改一些检查的例程,'\n'应该可以让git(或任何其他版本控制系统)匹配'\n'或模式'\\.\s'.然而,这是一项需要精心完成的任务,或者我可以看到事情非常糟糕.
有谁知道有人已经这样做了吗?还是其他任何选择?
谢谢!
我有以下课程.
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,那就做一些简单的事情吧.
有任何想法吗?
谢谢.
为什么“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)
我在文档中找不到任何表明这一点的内容。我错过了什么吗?
我调用了
complete -o default -F _foo foo
Run Code Online (Sandbox Code Playgroud)
要为命令启用bash自动完成功能foo。现在,我希望它消失,同时保留bash可能知道的所有其他完成功能。我该怎么做呢?我想要一个
complete --remove foo
Run Code Online (Sandbox Code Playgroud)