我是新手.但我尝试学习编写查询的最合理方法.
假设我收集的是;
{
"id" : NumberInt(1),
"school" : [
{
"name" : "george",
"code" : "01"
},
{
"name" : "michelangelo",
"code" : "01"
}
],
"enrolledStudents" : [
{
"userName" : "elisabeth",
"code" : NumberInt(21)
}
]
}
{
"id" : NumberInt(2),
"school" : [
{
"name" : "leonarda da vinci",
"code" : "01"
}
],
"enrolledStudents" : [
{
"userName" : "michelangelo",
"code" : NumberInt(25)
}
]
}
Run Code Online (Sandbox Code Playgroud)
我想列出一个key带有相应code值的a的出现.
举个例子key:michelangelo
为了找到密钥的出现,我写了两个不同的 …
结构或多或少像;
[
{id: 1, name: "alex" , children: [2, 4, 5]},
{id: 2, name: "felix", children: []},
{id: 3, name: "kelly", children: []},
{id: 4, name: "hannah", children: []},
{id: 5, name: "sonny", children: [6]},
{id: 6, name: "vincenzo", children: []}
]
Run Code Online (Sandbox Code Playgroud)
children当children数组不为空时,我想用名称替换id .
所以查询的结果是预期的;
[ {id: 1, name: "alex" , children: ["felix", "hannah" , "sonny"]}
{id: 5, name: "sonny", children: ["vincenzo"]}
]
Run Code Online (Sandbox Code Playgroud)
我做了什么来实现这一目标;
db.list.aggregate([
{$lookup: { from: "list", localField: "id", foreignField: "children", as: "children" }},
{$project: …Run Code Online (Sandbox Code Playgroud) 我想通过使用它的api在gitlab中获取文件内容.首先,我检查我的gitlab版本,其编写为,GitLab Community Edition 9.4.3 b125d21更新asap
然后我创建一个私人令牌和 http:// gitadress/api/v4/projects/id/repository/files?private_token = PRIVATE_TOKEN 返回为;
{"error":"404 Not Found"}
Run Code Online (Sandbox Code Playgroud)
然后我修改查询为;
http:// gitadress/api/v4/projects/222/repository/tree?private_token = PRIVATE_TOKEN 此请求返回为;
[{"id":"8078365d80c","name":"test.js","type":"blob","path":"test.js","mode":"100644"}]
Run Code Online (Sandbox Code Playgroud)
我想要的是获取test.js的内容,但无论我尝试什么,我都无法实现它.
{"error":"404 Not Found"}
Run Code Online (Sandbox Code Playgroud)
如何使用gitlab api获取原始文件内容?文档在这里; https://github.com/gitlabhq/gitlabhq/blob/master/doc/api/repository_files.md#get-raw-file-from-repository
JSONArray arr =
[
{"key1":"value1"},
{"key2":"value2"},
{"key3":"value3"},
{"key4":"value4"}
]
Run Code Online (Sandbox Code Playgroud)
arr.get("key1")抛出错误.如何通过键获取值JSONArray?
arr.getString("key1")也会抛出错误.我应该循环播放数组吗?这是唯一的方法吗?
错误是什么?
在Eclipse Debug透视图中,这些表达式返回为; error(s)_during_the_evaluation
[
{lecture : "427#Math"},
{lecture : "217#Science"},
{lecture : "7#History"},
{lecture : "12#Music"}
]
Run Code Online (Sandbox Code Playgroud)
假设我有上面的数据库结构.我想只返回讲座代码.到目前为止我做了什么?
db.collection.aggregate([
{$project: {"lecture": {$split: ["$lecture" , "#"]}}}
])
Run Code Online (Sandbox Code Playgroud)
但这会作为集合返回["427" , "Math"].如何只返回作为#角色前面部分的演讲代码.
例如一个树结构;
[
{id: 1 , childrenIdList: [2, 3]},
{id: 2 , childrenIdList: [4, 5]},
{id: 3 , childrenIdList: []},
{id: 4 , childrenIdList: [6, 7]},
{id: 5 , childrenIdList: []},
{id: 6 , childrenIdList: []},
{id: 7 , childrenIdList: []}
]
Run Code Online (Sandbox Code Playgroud)
就像
1
2 3
4 5
6 7
Run Code Online (Sandbox Code Playgroud)
如何从启动叶节点(id = 7)到根(id = 1)跟踪树?
寻找的父母id=7很容易;因为
db.document.find({childrenList: { $in: [7]}}, {id: 1}).toArray(function(err), result{
/*result gives
{"id" : NumberInt(4)}
now I should look the parent of id=4, and parent of …Run Code Online (Sandbox Code Playgroud) 这有点令人困惑.我正在尝试$group结果,aggregatation而grouping我们创造了新的领域,其中包括两个不同领域的结合.嗯.实际上我不愿意分享数据库的结构并让你感到困惑.但描述并不是解释性的.
所以我们走了.
学生集合
{id: "1", school: "georgia tech"}
Run Code Online (Sandbox Code Playgroud)
大学收藏
{name: "georgia tech" , state: "Georgia" , city: "Atlanta"}
Run Code Online (Sandbox Code Playgroud)
我想得到什么?我想得到
{id: 1, name: "georgia tech" , place: "Georgia_Atlanta"}
Run Code Online (Sandbox Code Playgroud)
我做了什么来实现这一目标?
db.student.aggregate([
{$match: {"id": "1"}},
{$lookup: {from: "university" , localField: "school" , foreignField: "name", as: "document"}},
{$group: {_id: "$id", name: {$push: "$school"}, place: {$push: {$concat: ["$document.state" , "_" , "$document.city"]}}}}
])
Run Code Online (Sandbox Code Playgroud)
但这会引发错误;
assert: command failed: {
"ok" : 0,
"errmsg" : "$concat only supports strings, not Array", …Run Code Online (Sandbox Code Playgroud) 我想创建一个zip文件并新建folder在其中新建。我创建了 zip 文件,但无法创建文件夹。
这是我的node.js代码;
var archiver = require('archiver');
var zip = archiver('zip');
for(var i=0; i < files.length; i++){
zip.append(new Buffer(files[i].data.buffer), { name: files[i].name } );
}
Run Code Online (Sandbox Code Playgroud)
例如,我想创建文件夹/first/second并在其中添加文件。
.zip
first(folder)
second(folder)
file
Run Code Online (Sandbox Code Playgroud)
我该怎么做?
假设我有一个文件;
{
id: 1,
name: alex,
age: 39,
surname: felix
address: [
{
type: "home"
street: "blabla"
}
]
}
Run Code Online (Sandbox Code Playgroud)
当我将查询写为;
db.collection.update({id: 1 , adress.type: "home"} , { $set : {adress: { street: "test"}});
Run Code Online (Sandbox Code Playgroud)
它将文档更改为;
{
id: 1,
adress: [
street: test
]
}
Run Code Online (Sandbox Code Playgroud)
但是我只想设置文档的一部分,只想更改街道名称但此查询会覆盖文档。
我怎样才能在编辑文档的一部分的区域mongodb用update?
假设我有html结构
ul
li //this one
ul
li
li
li
li //this one
Run Code Online (Sandbox Code Playgroud)
我不想得到所有li的.正如我评论的那样,我只想得到第一段李.我该如何选择它们?
document.querySelectorAll("ul > li");
Run Code Online (Sandbox Code Playgroud)
返回所有li的.
编辑:实际上这只是树的一小部分.
我无法将结构修改为添加类或ID.我在寻找的答案,得到第一层的名单li小号