小编Amo*_*rni的帖子

拆分以'='符号分隔的以管道分隔的键值对

我们接收输入参数值作为管道分隔的键值对,用=符号分隔.例如:

"|User=0101|Name=ImNewUser|IsAdmin=0|RefId=23ae2123cd223bf235|"
Run Code Online (Sandbox Code Playgroud)

所以格式是: |KEY=VALUE|KEY_2=VALUE_2|....|KEY_n=VALUE_n|

我需要将其拆分为JSON对象.所以,我的目标应该是:

{
 'User':'0101',
 'Name':'ImNewUser',
 'IsAdmin':'0',
 'RefId'='23ae2123cd223bf235'
}
Run Code Online (Sandbox Code Playgroud)

什么是最好的方式,因为有多种选择:

  • 我可以使用split with |和在每个元素上拆分=.
  • 我可以依赖正则表达式并进行字符串替换.
  • 使用=删除尾随|符号拆分它并将两个不同的数组与索引相关联.

任何人都可以告诉我在JavaScript(在Node.js中编程)中执行此操作的最佳/最有效方法吗?

javascript node.js

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

toGMTstring()和toUTCstring()有什么区别?

我正在从Node.js应用程序(使用Mongoose)保存MongoDB服务器中的数据.

考虑以下代码:

var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var schemaObj = new Schema({
    field1: String,
    field2: String,
    Datefield: Date//So on...
});

mongooseDB = mongoose.createConnection('mongodb://myserver:port/DBname');
mongooseDB.on('error', console.error.bind(console, 'error in connection'));

mongooseDB.once('open', function (err) {
        var objmodel = db.model('myschema', schemaObj); 
        modelObj.field1 ='value1'; 
        modelObj.Datefield = new Date().toGMTString(); //new Date().toUTCString();
        //So on..
        modelObj.save(function (err) {
            if (err)    
                 //Notify err
            else
                //DO some task after save
        });

    });
Run Code Online (Sandbox Code Playgroud)

在Datefield中,当我使用'toGMTstring()'或'toUTCstring()'时获取以下值

 'Thu, 24 Jan 2013 05:49:04 GMT'
Run Code Online (Sandbox Code Playgroud)

我浏览了以下链接:

javascript mongoose mongodb node.js

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

如何在第一级数组上使用$ elemMatch?

请考虑以下文档:

{
  "_id" : "ID_01",
  "code" : ["001", "002", "003"],
  "Others" : "544554"
}
Run Code Online (Sandbox Code Playgroud)

我通过这个MongoDB文档进行了elemmatch-queryelemmatch-projection,但是无法弄清楚如何在上面的文档中使用它.

谁能告诉我如何使用$elemMatch现场代码?

mongodb mongodb-query

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

.toISOString()函数问题

请考虑以下代码HTML + JavaScript:

<!DOCTYPE html>
<html>
<body>

<p id="demo">Click the button to display a date after changing the hours, minutes, and seconds.</p>

<button onclick="myFunction()">Try it</button>
 <script>
 function myFunction()
  {
  var d = new Date();
  d.setHours(0,0,0,0);
  document.write(d + '<br/>');
  document.write('ISO Date '+ d.toISOString() + '<br/>');
  //I want it to be 2013-04-17T00:00:00.000Z
  }
 </script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

输出:

Thu Apr 18 2013 00:00:00 GMT+0530 (India Standard Time)
ISO Date 2013-04-17T18:30:00.000Z
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮助理解日期和时间的这种差异

javascript

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

如何在字符串字段中存储ISO日期的MongoDB集合上查询日期范围?

场景:考虑我正在调用一个集合MyCollection,其中包含以下数据:

{
    "_id" : 'MyUniqueID_01'
    "CreatedTime" : "2013-12-01T14:35:00Z",
    "LastModifiedTime" : "2013-12-01T13:25:00Z"
}
Run Code Online (Sandbox Code Playgroud)

现在我想查询MongoDB数据库,其中上述类型的数据存在于大量文档中.而我的查询使用基于日期范围,即$gt,$gte,$lt$lte

所以我的查询可能是这样的:

db.MyCollection.find({ 'CreatedTime': {$gt: '2013-05-25T09:29:40.572Z'}})
Run Code Online (Sandbox Code Playgroud)

考虑到上述示例预期结果,查询必须获取文档(因为"CreatedTime":"2013-12-01T14:35:00Z"大于查询中传递的值'2013-05-25T09:29:40.572 Z'); 但事实并非如此,问题是该字段CreatedTime是字符串格式.

问题:有没有什么方法可以在不更改字符串字段类型的情况下完美地获得我期望的结果?

json mongodb bson mongodb-query node-mongodb-native

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

如何在使用storm时将拓扑上下文中的对象访问到bolt中?

我们需要在创建拓扑时传递一个对象,以便bolt可以访问该对象并根据该对象进行进一步处理.是否有可能通过对象TopplogyContext,如果是,如何?或者在提交拓扑之前是否还有其他方法可以传递对象,然后提交,以便bolt可以对其进行句柄/控制?

我们需要通过上下文传递对象,以便所有螺栓都可以访问它,并且不需要在该拓扑的所有螺栓中强制构造函数的实现.那么,想知道是否存在任何API来做同样的事情?

apache-storm

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

Storm-Kafka多个鲸鱼喷水,如何分担负荷?

我试图在多个喷口之间分享任务.我有一种情况,我从外部源一次获得一个元组/消息,我想要有多个spout实例,主要目的是分担负载并提高性能效率.

我可以用一个Spout本身做同样的事情,但我想分享多个喷口的负载.我无法获得分散负载的逻辑.由于消息的偏移在特定喷口完成消耗部件之前将不会被知道(即,基于设置的缓冲器大小).

任何人都可以对如何计算逻辑/算法有一些启发吗?

预付谢谢你的时间.


响应答案更新:
现在在Kafka上使用多分区(即5)
以下是使用的代码:
builder.setSpout("spout", new KafkaSpout(cfg), 5);

通过泛滥800 MB每个分区上的数据进行测试,并~22 sec完成读取.

再次,使用parallelism_hint = 1
即代码builder.setSpout("spout", new KafkaSpout(cfg), 1);

现在需要更多~23 sec!为什么?

根据Storm Docs的 setSpout()声明如下:

public SpoutDeclarer setSpout(java.lang.String id,
                              IRichSpout spout,
                              java.lang.Number parallelism_hint)
Run Code Online (Sandbox Code Playgroud)

其中,
parallelism_hint - 是执行此喷口应分配的任务数.每个任务都将在群集周围某个进程中的某个线程上运行.

java load-balancing apache-kafka apache-storm

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

如何通过两个键来订购JSON对象?

我有一个JSON对象,我想先按一个键排序,然后再按第二个键排序,类似于SQL中两列的排序.这是我将拥有的JSON示例:

{
   "GROUPID":3169675,
   "LASTNAME":"Chantry"
}
Run Code Online (Sandbox Code Playgroud)

我想通过GROUPID和LASTNAME订购所有结果.我已经使用JSON排序函数按一个键排序,但不是多个.

任何帮助都会很棒.

javascript json

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

从node.js应用程序调用时,Mongoose Model.save()会挂起

我正在尝试学习node和mongo,以便构建一个简单的Web应用程序/自学一些关于Web应用程序的内容.但是,当我调用Model.save()时,似乎永远不会执行continuation函数,并且不会保存数据.

这是我到目前为止所拥有的:

/* app.js */

var express = require('express')
  , app = express()
  , routes = require('./routes')
  , http = require('http')
  , path = require('path')
  , mongoose = require('mongoose')
  , db 
  , Track
  , models = require('./models.js');

app.configure(function(){
  app.set('port', process.env.PORT || 3000);
  app.set('views', __dirname + '/views');
  app.set('view engine', 'ejs');
  app.use(express.favicon());
  app.use(express.logger('dev'));
  app.use(express.bodyParser());
  app.use(express.methodOverride());
  app.use(express.cookieParser('secretstuff'));
  app.use(express.session());
  app.use(app.router);
  app.use(require('less-middleware')({ src: __dirname + '/public' }));
  app.use(express.static(path.join(__dirname, 'public')));
  app.use(function(err, req, res, next){
    console.error(err.stack);
    res.send(500, 'Something broke!');
  });
});

models.defineModels(mongoose, function(){
  app.Track = Track = …
Run Code Online (Sandbox Code Playgroud)

javascript mongoose mongodb node.js express

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

在go lang中循环/遍历第二级嵌套JSON

请考虑以下代码:

package main

import (
"encoding/json"
"fmt"
"reflect"
)


func main() {  
    //Creating the maps for JSON
    m := map[string]interface{}{}

    //Parsing/Unmarshalling JSON encoding/json
    err := json.Unmarshal([]byte(input), &m)

    fmt.Println("\nReflect type of Parsing/Unmarshalling Error Object:\n",reflect.TypeOf(err))
    fmt.Println("\nParsing/Unmarshalling Error Object:\n",err)
    if err != nil {
        panic(err)
    }

    fmt.Println("\nParsed JSON is as follows:\n",m)
    fmt.Println("\nReflect type of parsed json object:\n", reflect.TypeOf(m))

    for firstLvlkey, firstLvlValue := range m { 
        fmt.Println("First Level Key:", firstLvlkey)
        fmt.Println("First Level Key reflect type of :", reflect.TypeOf(firstLvlkey))

        fmt.Println("First Level Value:", firstLvlValue)
        fmt.Println("First Level …
Run Code Online (Sandbox Code Playgroud)

json go

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