chrome console下编写javascript代码,要想换行按哪个键?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了chrome console下编写javascript代码,要想换行按哪个键?相关的知识,希望对你有一定的参考价值。
console中输入的代码都是立即执行的,按回车就执行。
事实上,javascript代码中是没有一般意义上的“行”的概念的,分号才是真正的换行标志,所以如果你想输入多行代码,可以用分号隔开,如 a=1; b=2。一定要换行,可以按shift+Enter。
Javascript,一种高级编程语言,通过解释执行,是一门动态类型,面向对象(基于原型)的直译语言。它已经由欧洲电脑制造商协会通过ECMAScript实现语言的标准化。它被世界上的绝大多数网站所使用,也被世界主流浏览器支持。
JavaScript是一门基于原型、函数先行的语言,是一门多范式的语言,它支持面向对象编程,命令式编程,以及函数式编程。它提供语法来操控文本、数组、日期以及正则表达式等,不支持I/O,比如网络、存储和图形等,但这些都可以由它的宿主环境提供支持。 JavaScript虽与Java有很多相似性,但这两门编程语言从设计之初就有很大的不同,JavaScript的语言设计主要受到了Self(一种基于原型的编程语言)和Scheme(一门函数式编程语言)的影响。在语法结构上它又与C语言有很多相似(例如if条件语句、while循环、switch语句、do-while循环等)。
如何在不超过最大文档大小的情况下编写聚合?
【中文标题】如何在不超过最大文档大小的情况下编写聚合?【英文标题】:How could I write aggregation without exceeds maximum document size? 【发布时间】:2015-06-21 01:56:42 【问题描述】:我通过如下查询得到exceeds maximum document size problem
异常,
pipe = [
"$match": "birthday":"$gte":datetime.datetime(1987, 1, 1, 0, 0)
]
res =db.patients.aggregate(pipe,allowDiskUse=True)
我通过添加 $project
运算符来修复它,
但是,即使我使用$project
,文件仍然超过16MB
怎么办?
我能做什么?任何想法 ?谢谢
pipe = [
"$project": "birthday":1, "id":1
,
"$match": "birthday":"$gte":datetime.datetime(1987, 1, 1, 0, 0)
]
res =db.patients.aggregate(pipe,allowDiskUse=True)
异常
OperationFailure: command SON([('aggregate', 'patients'), ('pipeline', ['$match': 'birthday': '$gte': datetime.datetime(1987, 1, 1, 0, 0)]), ('allowDiskUse', True)]) on namespace tw_insurance_security_development.$cmd failed: exception: aggregation result exceeds maximum document size (16MB)
【问题讨论】:
【参考方案1】:默认情况下,聚合结果在单个 BSON 文档中返回给您,这是大小限制的来源。如果您需要返回更多,您可以:
将结果输出到集合中。为此,您可以使用
完成管道"$out": "some-collection-name"
然后您可以正常查询该集合(完成后您需要自己删除它)
通过在调用聚合时指定useCursor=True
将结果作为游标返回。
这两个选项都需要 mongodb 2.6:如果您仍在运行 mongodb 2.4,那么这只是聚合的基本限制。
【讨论】:
你会这么好心并给出一个小的Java示例或至少一个源代码吗?最佳 抱歉 - 我不熟悉 Java mongo API 感谢您的快速响应。我找到了一个解决方案(使用 spring 数据和 mongoDB):List<DBObject> pipeline = new ArrayList<>(); DBObject someMatchCriteria = new BasicDBObject(); someMatchCriteria.put("param", "value"); DBObject out = new BasicDBObject(); out.put("$out", "outCollectionName"); pipeline.add(new BasicDBObject("$match", someMatchCriteria)); pipeline.add(out); mongoOperations.getCollection("inCollectionName").aggregate(pipeline);
【参考方案2】:
正如@Frederick 所说,至少需要 mongo 2.6,为了进一步参考,here 是来自 mongo 文档的链接,其工作方式类似于 runCommand 方式,但使用 db.collection.aggreagate,请注意,对于文档限制,请使用“光标”选项,排序限制使用“allowDiskUse”选项。
【讨论】:
【参考方案3】:您可以使用aggregateCursor(collection_name, $pipeLine, ["useCursor" => true])
。
pipe = [
"$match": "birthday":"$gte":datetime.datetime(1987, 1, 1, 0, 0)
]
res =db.patients.aggregateCursor(collection_name, pipe, ["useCursor" => true]);
$ret = [];
foreach ($taskList as $task)
array_push($ret, $task);
return $ret;
【讨论】:
【参考方案4】:使用下面的sn -p
db.patients.runCommand('aggregate',
pipeline: [
"$project": "birthday":1, "id":1,
"$match": "birthday":"$gte":datetime.datetime(1987, 1, 1, 0, 0)
],
allowDiskUse: true)
此处的 allowDiskUse 将有助于找出超过 16 MB 的数据
【讨论】:
其实我已经启用了allowDiskUse
选项,但是还是不行以上是关于chrome console下编写javascript代码,要想换行按哪个键?的主要内容,如果未能解决你的问题,请参考以下文章