小编str*_*ada的帖子

Mongoose upsert不会创建默认架构属性

示例文档架构:

var CompanySchema = Schema({
    created: { type: Date, default: Date.now },
    modified: { type: Date, default: Date.now },
    address: { type: String, required:true },
    name: { type: String, required:true }
});
Run Code Online (Sandbox Code Playgroud)

我正在使用通用请求处理程序来编辑和创建"公司"文档:

exports.upsert = function(req, res) {
    helper.sanitizeObject(req.body);
    var company = {
        name: req.body.name,
        address: req.body.address
    };
    var id = req.body.id || new mongoose.Types.ObjectId();
    var queryOptions = {
        upsert: true
    };
    Company.findByIdAndUpdate(id, company, queryOptions).exec(function(error, result) {
        if(!error) {
            helper.respondWithData(req, res, {
                data: result.toJSON()
            });
        } else {
            helper.respondWithError(req, res, …
Run Code Online (Sandbox Code Playgroud)

mongoose mongodb node.js

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

在node.js中创建S3签名的URL

我正在使用knox模块来https://github.com/LearnBoost/knox为S3上的文件创建签名URL,这是我以前用PHP SDK完成的.

我可以从我的存储桶中删除文件,但是当我尝试为具有私有ACL的文件生成URL时,我收到了SignatureDoesNotMatch错误.

代码看起来像这样

var knox = require('knox');
var s3Client = knox.createClient({
key: '*****',
secret: '*****',
bucket: '*****'
});
function getS3Url(filename) {
var expires = new Date();
expires.setMinutes(expires.getMinutes() + 30);
return s3Client.signedUrl(filename, expires);
}
console.log(getS3Url('file.txt'));
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

amazon-s3 node.js knox-amazon-s3-client

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

从node.js中的mongodb-native运行db.repairDatabase()

我可以从mongodb shell运行db.repairDatabase()但是我找不到使用mongodb-native模块从node.js app运行相同命令的示例.如何使用executeDbCommand方法运行"repairDatabase"?

javascript mongodb node.js

5
推荐指数
1
解决办法
805
查看次数

与geonear的Mongoose聚合

我正在尝试使用Mongoose geoNear命令实现分页.geoNear不支持跳过,我理解聚合会起作用(带有性能成本的分页).如何将此转换为聚合查询以跳过多个文档?

exports.near = function(req, res) {
    if(req.query.lat && req.query.lng) {
        var point = {
            type: "Point", coordinates : [Number(req.query.lng), Number(req.query.lat)]
        };
        var queryParams = {
            spherical: true,
            skip: 0,
            limit: 10,
            distanceMultiplier: 6371 // radians to kilometers. (The radius of the Earth is approximately 3,959 miles or 6,371 kilometers.)
        };
        if(req.query.q) {
            var matcher = new RegExp(req.query.q, "i");
            queryParams.query = {
                $or: [
                    {'name': matcher },
                    {'address.full': matcher}
                ]
            };
        }
        if(req.query.limit) {
            queryParams.limit = parseInt(req.query.limit, 10);
        }
        if(req.query.offset) …
Run Code Online (Sandbox Code Playgroud)

geospatial mongoose mongodb node.js aggregation-framework

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