更新:MongoDB的后续操作获取集合中所有键的名称.
正如Kristina所指出的,可以使用Mongodb的map/reduce来列出集合中的键:
db.things.insert( { type : ['dog', 'cat'] } );
db.things.insert( { egg : ['cat'] } );
db.things.insert( { type : [] });
db.things.insert( { hello : [] } );
mr = db.runCommand({"mapreduce" : "things",
"map" : function() {
for (var key in this) { emit(key, null); }
},
"reduce" : function(key, stuff) {
return null;
}})
db[mr.result].distinct("_id")
//output: [ "_id", "egg", "hello", "type" ]
Run Code Online (Sandbox Code Playgroud)
只要我们想要只获得位于第一级深度的键,这就可以了.但是,它将无法检索位于更深层次的密钥.如果我们添加一条新记录:
db.things.insert({foo: {bar: {baaar: true}}})
Run Code Online (Sandbox Code Playgroud)
我们再次运行上面的map-reduce + distinct片段,我们将得到:
[ …Run Code Online (Sandbox Code Playgroud) 我正在使用Dompdf从html模板和Pdfnup(Pdfjam的一部分)生成A5 pdf文档,将它们组合成一张漂亮的单张A4纸,这有助于在打印时节省一些纸张:)
# Generate an a5 pdf
php dompdf.php mytemplate.html -p 'A5' -f a5doc.pdf
# combine two copies of the generated A5 into a single A4 page
pdfnup a5doc.pdf a5doc.pdf --nup '2x1'
Run Code Online (Sandbox Code Playgroud)
这很好用; 虽然第二步迫使我安装大量的依赖项(即Tex-Latex,pdftex,ecc.)并且会混乱我的生产服务器.我想知道是否有任何方法来组合生成的文件而不实际使用Pdfnup.例如,有没有办法用pdftk这样做?
先感谢您!
我正在评估 Bazel 并尝试对其进行配置,以便它使用与构建时使用的 JDK 不同的 JDK 来构建和测试我的 scala 项目。
这些是来自 my 输出的相关行bazel info:
java-home: /nix/store/09x4mnxfzppwq1yjaakrfa6aj3rp7sw8-openjdk-11.0.4-ga/lib/openjdk
java-runtime: OpenJDK Runtime Environment (build 11.0.3-internal+0-adhoc..jdk11u-jdk-11.0.3-ga) by Oracle Corporation
java-vm: OpenJDK 64-Bit Server VM (build 11.0.3-internal+0-adhoc..jdk11u-jdk-11.0.3-ga, mixed mode) by Oracle Corporation
max-heap-size: 8325MB
package_path: %workspace%
release: release 1.1.0- (@non-git)
Run Code Online (Sandbox Code Playgroud)
虽然我的包管理器似乎使用相当新版本的 openjdk 构建了 Bazel,但我想要构建/测试的项目应该使用我安装在下面的 JDK:/usr/lib/jvm/java-8-openjdk.
通过深入研究各种 github 问题,我最终得到了以下解决方案,这使我能够获得绿色构建:
bazel test \
--define=ABSOLUTE_JAVABASE=/usr/lib/jvm/java-8-openjdk \
--host_javabase=@bazel_tools//tools/jdk:absolute_javabase \
--host_java_toolchain=@bazel_tools//tools/jdk:toolchain_vanilla \
--java_toolchain=@bazel_tools//tools/jdk:toolchain_vanilla \
--test_timeout=10 --test_output=all //...
Run Code Online (Sandbox Code Playgroud)
但是,我仍然对以下内容感到困惑:
我正在学习一些Haskell,我试图了解模式匹配的工作原理.在这样做的过程中,我编写了一个简单的nth函数.
nth' :: Integer -> [a] -> a
nth' n [] = error "Index out of bound"
nth' n (x:xs) = if n == 0 then x else nth' (n - 1) xs
Run Code Online (Sandbox Code Playgroud)
第一个实现似乎按预期工作.
-- nth' 25 ['a'..'z']
-- 'z'
-- nth' 26 ['a'..'z']
-- *** Exception: Index out of bound
Run Code Online (Sandbox Code Playgroud)
但是,当我重构它用模式匹配替换if语句时,我最终得到"索引越界"异常,我显然不应该这样做.
nth' :: Integer -> [a] -> a
nth' _ [] = error "Index out of bound"
nth' 0 (x:[]) = x
nth' n (_:xs) = nth' …Run Code Online (Sandbox Code Playgroud)