小编Rob*_*dle的帖子

如何用GSON解析动态JSON字段?

所以我使用GSON从API解析JSON,并且如何解析数据中的动态字段.

以下是查询返回的JSON数据的示例:

{

-
30655845: {
    id: "30655845"
    name: "testdata
    description: ""
    latitude: "38"
    longitude: "-122"
    altitude: "0"
    thumbnailURL: http://someimage.com/url.jpg
    distance: 9566.6344386665
}
-
28688744: {
    id: "28688744"
    name: "testdata2"
    description: ""
    latitude: "38"
    longitude: "-122"
    altitude: "0"
    thumbnailURL: http://someimage.com/url.jpg
    distance: 9563.8328713012
}
}
Run Code Online (Sandbox Code Playgroud)

我目前处理单个静态值的方法是使用类:

import com.google.gson.annotations.SerializedName;

public class Result 
{
@SerializedName("id")
public int id;

@SerializedName("name")
public String name;

@SerializedName("description")
public String description;

@SerializedName("latitude")
public Double latitude;

@SerializedName("longitude")
public Double longitude;

@SerializedName("altitude")
public Double altitude;

@SerializedName("thumbnailURL")
public String thumbnailURL;

@SerializedName("distance") …
Run Code Online (Sandbox Code Playgroud)

java api json gson

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

为什么我的mongodb打电话这么慢?

好吧,所以我正在构建一个基于Node.js的应用程序,我正在使用mongoose来处理我与mongodb的连接.我有一个端点是这样的:

getTestStream : function(req, res, conditions, callback) {   
  Activity.find()
    .limit(1000)
    .run(function(err, activities) {
      if (err){
        util.sendError(req, res, "Query Error", err);
      } else if (activities) {     
        res.send(activities);
      } else {
        util.send('nope');
      }
  });
}
Run Code Online (Sandbox Code Playgroud)

由于某种原因,此调用需要700毫秒+才能完成.即使没有应用mongodb shell的限制,相同的调用也会在大约4ms内返回.这看起来像是一个简单的查询,那么是什么让它减慢了这么多?我猜我错过了配置中某些显而易见的东西,但我不知道.

感谢任何可以提供帮助的人.

其他信息:

mongoose@2.6.0
mongodb@2.0.4
node@0.6.9
Run Code Online (Sandbox Code Playgroud)

javascript database mongoose mongodb node.js

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

对 mongodb 批量 API 实施限制

我想从一个集合中删除大量旧文档,因此使用批量 api 是有意义的。删除它们很简单:

var bulk = db.myCollection.initializeUnorderedBulkOp();

bulk.find({
  _id: {
    $lt: oldestAllowedId
  }
}).remove();

bulk.execute();
Run Code Online (Sandbox Code Playgroud)

唯一的问题是,这将尝试删除符合此条件的每个文档,在本例中是数百万个文档,因此出于性能原因,我不想一次删除它们。我想对操作实施限制,以便我可以执行类似操作bulk.limit(10000).execute();,将操作间隔几秒钟,以防止锁定数据库的时间超过必要的时间。但是,我无法找到任何可以传递到批量以限制其执行数量的选项。

有没有办法以这种方式限制批量操作?

在有人提到它之前,我知道bulk会自动将操作分割成1000个文档块,但它仍然会尽可能快地按顺序执行所有这些操作。这会导致性能影响比我现在可以处理的要大得多。

mongodb node.js mongodb-query

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

NodeJS:2021 年干预 Steam 的“through2”的实际原生替代品

来自through2文档:

\n
\n

你需要这个吗?

\n

自从 Node.js 引入了简化流构造以来,\nthrough2 的许多使用都变得多余了。考虑您是否确实需要\n使用 through2 还是只想使用\'readable-stream\' 包或\n核心\'stream\' 包(源自\'readable-stream\')。

\n
\n

如果我理解正确的话,现在(从 2021 年开始)我们可以在没有第三方库的情况下干预流。\n我没有找到如何执行与Stream 文档through2中相同的操作。

\n
// ...\n  .pipe(through2(function (file, encoding, callback) {\n    // Do something with file ...\n    callback(null, file)\n   }))\n\n// \xe2\x86\x91 Possible to reach the same effect natively (with core packages)?\n
Run Code Online (Sandbox Code Playgroud)\n

我想,2021 年一定会有一些支持 async/await 语法的方法:

\n
// ...\n  .pipe(newFeatureOfModernNodeJS(async function (file) {\n\n    await doSomethingAsyncWithFile(file);\n    // on fail - same effect as "callback(new Error(\'...\'))" of trough2\n\n    return file; // …
Run Code Online (Sandbox Code Playgroud)

node.js through2

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

标签 统计

node.js ×3

mongodb ×2

api ×1

database ×1

gson ×1

java ×1

javascript ×1

json ×1

mongodb-query ×1

mongoose ×1

through2 ×1