小编Joh*_*yHK的帖子

如何更新 MongoDB 中的特定数组元素

我是 MongoDB 的新手。我以以下格式将数据存储在 mongoDB 中

"_id" : ObjectId("51d5725c7be2c20819ac8a22"),
"chrom" : "chr22",
"pos" : 17060409,
"information" : [

        {
                "name" : "Category",
                "value" : "3"
        },
        {
                "name" : "INDEL",
                "value" : "INDEL"
        },
        {
                "name" : "DP",
                "value" : "31"
        },
        {
                "name" : "FORMAT",
                "value" : "GT:PL:GQ"
        },

        {
                "name" : "PV4",
                "value" : "1,0.21,0.00096,1"
        }
],
"sampleID" : "Job1373964150558382243283"
Run Code Online (Sandbox Code Playgroud)

我想将值更新为 11,其名称为Category. 我试过下面的查询:

db.VariantEntries.update({$and:[ { "pos" : 117199533} , { "sampleID" : "Job1373964150558382243283"},{"information.name":"Category"}]},{$set:{'information.value':'11'}})
Run Code Online (Sandbox Code Playgroud)

但是 Mongo 回复了

can't …
Run Code Online (Sandbox Code Playgroud)

mongodb spring-mongo

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

python mongodb $match 和 $group

我想编写一个简单的查询,为我提供拥有最多关注者、时区为巴西且已发推文 100 次或以上的用户:

这是我的台词:

pipeline = [{'$match':{"user.statuses_count":{"$gt":99},"user.time_zone":"Brasilia"}},
            {"$group":{"_id": "$user.followers_count","count" :{"$sum":1}}},
            {"$sort":{"count":-1}} ]
Run Code Online (Sandbox Code Playgroud)

我根据练习题改编了它。

This was given as an example for the structure :
    {
    "_id" : ObjectId("5304e2e3cc9e684aa98bef97"),
    "text" : "First week of school is over :P",
    "in_reply_to_status_id" : null,
    "retweet_count" : null,
    "contributors" : null,
    "created_at" : "Thu Sep 02 18:11:25 +0000 2010",
    "geo" : null,
    "source" : "web",
    "coordinates" : null,
    "in_reply_to_screen_name" : null,
    "truncated" : false,
    "entities" : {
        "user_mentions" : [ ],
        "urls" : [ ],
        "hashtags" …
Run Code Online (Sandbox Code Playgroud)

python mongodb aggregation-framework

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

最小子域长度

我已经用几种不同的方法在Google上进行了搜索,但是我找不到任何官方的东西。

最小子域长度是多少?

据我了解,一个域必须至少包含3个字符,但我无法找到有关子域最小值的任何信息。

dns http

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

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

MongoDB $ project用于名称中带有空格的字段

我有一个像这样的文档:

{
    "_id" : NumberLong(111603),
    "max" : "Created At",
    "document" : {
        "_id" : ObjectId("54ad61013e016de5798c0582"),
        "testfield1" : "ISUZU (GM)",
        "Model - Range" : "N-series",
        "testfield2" : "N NQR 75",
    }
}
Run Code Online (Sandbox Code Playgroud)

我想汇总包含许多这些文档的集合。我在$ project步骤中遇到了“模型-范围”问题。目前我正在使用

db.AE.aggregate([
    {"$project":{
        "Make":"$document.testfield1",
        "Model":"$document.testfield2",
        "_id":0, 
        "Group": "$document['Model - Range']"
     }}
]);
Run Code Online (Sandbox Code Playgroud)

但是由于某种原因,MongoDB完全忽略了Group字段,而只添加了其他两个字段。

在MongoDB聚合框架中投影时,是否可以解决其中带有空格/特殊字符的字段?

mongodb mongodb-query aggregation-framework

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

如何找到包含尽可能多的关键字的数组字段的文档?

假设我想找到"tags"包含标签的字段的文档:"a", "b", "c".

如果我使用$and运算符,它将只返回"tags"包含所有三个标记的文档.

这种严格的搜索不是我想要的.如果我选择使用$or运算符,它将找到包含列表中至少一个标记的文档,但它不会尝试检查是否存在首先包含其中几个或全部的文档.

我想要做的是搜索包含"尽可能多的标签,但至少有一个"的文档,或者换句话说,找到包含至少一个标签的所有文档,但首先显示最匹配的文档.我知道我可以通过一系列查询来做到这一点(例如,使用$and查询然后$or),但如果有更多的2标签,我将不得不使用不同的标签组合进行大量查询以获得良好的结果.

arrays search mongodb

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

mongodb:限制数字字段的可能值

我想限制mongo中字段的选择:

units : { type: Number, default: 1 },
Run Code Online (Sandbox Code Playgroud)

但我想添加这个约束:类似的东西

授权值:[1,10,100,1000]

mongoose mongodb

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

动态加载挖空组件

这是我的HTML:

<a href="#page1">page 1</a>
<a href="#page2">page 2</a>
Run Code Online (Sandbox Code Playgroud)

这是我的js:

define(['jquery', 'knockout'], function ($, ko) {


     ko.components.register('page1', {
    require: 'App/Controllers/page1'
});
ko.components.register('page2', {
    require: 'App/Controllers/page2'
});

    window.onhashchange = function () {
        var hash = location.hash.replace('#', '');
        $('#body').html('<' + hash + '></' + hash + '>'); //hash = page1 or page2
    }

    ko.applyBindings();
})
Run Code Online (Sandbox Code Playgroud)

但是,当散列更改时,组件不会加载,主体内容只是: <page1></page1>或第二页.如果我像这样改变我的js:

define(['jquery', 'knockout'], function ($, ko) {

    ko.components.register('page1', {
    require: 'App/Controllers/page1'
});
ko.components.register('page2', {
    require: 'App/Controllers/page2'
});

    $('#body').html('<page1></page1>');

    ko.applyBindings();
})
Run Code Online (Sandbox Code Playgroud)

它工作正常

knockout.js

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

猫鼬:流式传输聚合的JSON数据

如标题所示,我正在使用Express我的webapp。

目前,我的代码如下所示:

API控制器

var mongoose = require('mongoose');
var Doc = mongoose.model('Document');

var sendJSONresponse = function(res, status, content) {
  res.status(status);
  res.json(content);
};

// "/api/documents"
module.exports.listAllDocuments = function(req, res) {

  var stream = Doc.find().stream();
  stream.on('data', function (chunk) {
    res.write(JSON.stringify(chunk));
  }).on('error', function (err) {
    console.log('Error: ' + err);
  }).on('end', function () {
    res.end();
  });

};
Run Code Online (Sandbox Code Playgroud)

var stream = Doc.find().stream();我希望利用而不是使用aggregate()

像一样find()aggregate()应该是可读流,对吗?

但是,当我简单地find()用一个aggregate()电话代替时,它似乎不起作用。

它说类型错误:Object #<Aggregate> has no method 'stream'。有什么方法可以流式传输聚合的JSON数据 …

streaming aggregate mongoose

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

Mongodb $unwind 聚合不起作用

我是 mongodb 聚合的新手。我的 mongo 文档有很多数组。我需要将其导出为平面文件。为此,我需要构建它。我尝试了以下聚合:

[
{$unwind : "$items" },
{$unwind : "$items.discounts"},    
{$unwind : "$payments"},
{$unwind : "$payments.items"},  
{$unwind : "$payments.refunds"}
]
Run Code Online (Sandbox Code Playgroud)

它起作用了,然后我只是添加了以下条件来过滤数据

[
{$match : { "updatedtime": { $gt: 1514764800000}}},
{$unwind : "$items" },
{$unwind : "$items.discounts"},    
{$unwind : "$payments"},
{$unwind : "$payments.items"},  
{$unwind : "$payments.refunds"}
]
Run Code Online (Sandbox Code Playgroud)

返回 0 行,我再次尝试使用 match 语句

[
{$match : { "updatedtime": { $gt: 1514764800000}}}
]
Run Code Online (Sandbox Code Playgroud)

它再次起作用。

[
{$match : { "updatedtime": { $gt: 1514764800000}}},
{$unwind : "$items" }
]
Run Code Online (Sandbox Code Playgroud)

作品。

[
{$match …
Run Code Online (Sandbox Code Playgroud)

mongodb mongodb-query aggregation-framework

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