小编HVT*_*VT7的帖子

使用弹簧配置(注释优先)的mongodb中的多对多

我正在建模一个模式.由于我是Mongo DB的新手,我不知道如何建模nosql数据库.构建关系类型db并在其上使用mongo不允许我使用多对多映射.

使用Spring数据确实给许多使用提供了一个支持@DBRef在顶部List<?>.但很多人都是我想要的.

任何帮助将深表感谢.请更喜欢使用代码来解释.或者演示结构来说明.提前致谢.

java many-to-many spring-data-mongodb

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

Nodejs读取非常大的文件(~10GB),逐行处理然后写入其他文件

我有一个特定格式的10 GB日志文件,我想逐行处理该文件,然后在应用一些转换后将输出写入其他文件。我正在使用节点来执行此操作。

虽然这个方法很好,但是需要花费很多时间。在 JAVA 中,我能够在 30-45 分钟内完成此操作,但在 Node 中,完成同样的工作需要 160 多分钟。以下是代码:

以下是从输入中读取每一行的启动代码。

var path = '../10GB_input_file.txt';
var output_file = '../output.txt';

function fileopsmain(){

    fs.exists(output_file, function(exists){
        if(exists) {
            fs.unlink(output_file, function (err) {
                if (err) throw err;
                console.log('successfully deleted ' + output_file);
            });
        }
    });

    new lazy(fs.createReadStream(path, {bufferSize: 128 * 4096}))
        .lines
        .forEach(function(line){
            var line_arr = line.toString().split(';');
            perform_line_ops(line_arr, line_arr[6], line_arr[7], line_arr[10]);
        }
    );

}
Run Code Online (Sandbox Code Playgroud)

这是对该行执行某些操作并将输入传递给 write 方法以将其写入输出文件的方法。

function perform_line_ops(line_arr, range_start, range_end, daynums){

    var _new_lines = ''; …
Run Code Online (Sandbox Code Playgroud)

file-io file-handling file-processing large-files node.js

7
推荐指数
1
解决办法
1万
查看次数

我们可以在jsp中使用@autowired吗?如果是,那么如何.?

我正在使用spring和hibernate构建一个Web应用程序.我想构建服务器端表,我需要一个用Service类编写的方法.但是为了成功执行它,我需要将它自动装入到受尊重的类中,因为现在它正在访问表中给出一个Null Pointer Exception.

java spring jsp hibernate spring-mvc

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

MongoDb访问具有特定属性的对象数组

我有一份文件如下:

{
    user: 'hvt07',
    photos: [
    {
        link: 'http://link.to.com/image1.jpg',
        isPrivate: true
    },
    {
        link: 'http://link.to.com/image2.jpg',
        isPrivate: false
    }
    ]
}
Run Code Online (Sandbox Code Playgroud)

我想得到所有照片:

isPrivate: false
Run Code Online (Sandbox Code Playgroud)

我使用以下查询:

db.collection_name.find({ photos:{ $elemMatch:{isPrivate: false} } }).pretty()
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

db.collection_name.find({'photos.isPrivate': true}).pretty()
Run Code Online (Sandbox Code Playgroud)

但是两者都返回数组中的所有元素,即使是那些设置为:

isPrivate: true
Run Code Online (Sandbox Code Playgroud)

请建议.

mongodb mongodb-query aggregation-framework

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

如何在MongoDB中切片$ filter结果?

我有一个具有以下格式的集合:

{
    "_id": 123,
    "items": [{
        "status" : "inactive",
        "created" : ISODate("2016-03-16T10:39:28.321Z")
    },
    {
        "status" : "active",
        "created" : ISODate("2016-03-16T10:39:28.321Z")
    },
    {
        "status" : "active",
        "created" : ISODate("2016-03-16T10:39:28.321Z")
    }
    ],
    "status" : "active"
}
Run Code Online (Sandbox Code Playgroud)

我想查询项目的状态字段,以便状态为"活动"的对象仅在数组中返回,并且在查询中仅返回最后2个.

目前我使用$ filter进行此操作,但我无法使用$ slice$ filter(我认为这是我想要的).以下是我的查询现在的样子:

db.collection('collection').aggregate([
{$match: {'status': 'active'}},
{
    $project: {
        'items': {
            $filter: {
                input: '$items', 
                as: 'item', 
                cond: {$eq: ['$$item.status', 'active']
            }
        }
    }
}]);
Run Code Online (Sandbox Code Playgroud)

我现在得到的是正确的结果,只是它返回items字段中的所有对象,我只想要最后2个对象.

mongodb mongodb-query aggregation-framework

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