小编mmu*_*478的帖子

在2个不同的字段中搜索值mongodb + node.js

我是新手.但我尝试学习编写查询的最合理方法.

假设我收集的是;

{ 
    "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

为了找到密钥的出现,我写了两个不同的 …

mongodb node.js mongodb-query aggregation-framework

12
推荐指数
1
解决办法
693
查看次数

$ aggregation和$查找同一个集合 - mongodb

结构或多或少像;

[   
    {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)

childrenchildren数组不为空时,我想用名称替换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)

lookup mongodb aggregation-framework

8
推荐指数
2
解决办法
4680
查看次数

从存储库获取原始文件

我想通过使用它的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的内容,但无论我尝试什么,我都无法实现它.

http://gitadress/api/v4/projects/id/repository/tree/test.js/raw?private_token = PRIVATE_TOKEN&ref = master 返回为;

{"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

git api gitlab

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

通过密钥jsonarray获取价值

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

java arrays json get

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

$ split并返回mongodb查询中的第一个数组元素

[
  {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"].如何只返回作为#角色前面部分的演讲代码.

mongodb mongodb-query aggregation-framework

4
推荐指数
1
解决办法
1818
查看次数

如何使用MongoDB递归查询树结构?

例如一个树结构;

[
    {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)

recursion mongodb node.js

3
推荐指数
1
解决办法
3651
查看次数

聚合mongodb $ concat

这有点令人困惑.我正在尝试$group结果,aggregatationgrouping我们创造了新的领域,其中包括两个不同领域的结合.嗯.实际上我不愿意分享数据库的结构并让你感到困惑.但描述并不是解释性的.

所以我们走了.

学生集合

{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)

mongodb node.js mongodb-query aggregation-framework

3
推荐指数
1
解决办法
993
查看次数

如何在 zip 文件存档器中创建文件夹 - node.js

我想创建一个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)

我该怎么做?

javascript directory zip archive node.js

3
推荐指数
1
解决办法
2253
查看次数

mongodb update 和 $set 覆盖文档

假设我有一个文件;

{
  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)

但是我只想设置文档的一部分,只想更改街道名称但此查询会覆盖文档。

我怎样才能在编辑文档的一部分的区域mongodbupdate

edit mongodb node.js

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

如何在<ul>中选择<li>

假设我有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小号

html javascript

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