小编Man*_*ani的帖子

在哈希mongodb里面找到

我在我的集​​合中有这个结构:

{foo : 1, bar : 4, baz : {a : 1, b : 2 ,c : "fafofu"}}
Run Code Online (Sandbox Code Playgroud)

如何在baz中找到"a"和"b"?它不起作用db.my_collection.find({baz : {a : 1, b : 2});

我不在乎"c"是"fafofu"还是"cacocu"并不重要.

mongodb

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

如何使用"find"在Perl API中搜索"_id => OBjectID("id")"

我必须在我的Mongo中找到一种"_id",我可以使用Mongo shell来实现它,而且我不能使用Perl API来做到这一点.

我正在努力(mongo shell):

./mongo
use my_db
db.my_collection.find({_id : ObjectId("4d2a0fae9e0a3b4b32f70000")})
Run Code Online (Sandbox Code Playgroud)

它有效!(返回),但我无法使用Perl API,

$mongo->my_db->my_collection(find({_id => "ObjectId(4d2a0fae9e0a3b4b32f70000"}));
Run Code Online (Sandbox Code Playgroud)

不起作用,因为"ObjectId"不是字符串,但如果你这样做,

./mongo
use my_db
db.my_collection.find({_id : "ObjectId(4d2a0fae9e0a3b4b32f70000)"})
Run Code Online (Sandbox Code Playgroud)

也不行,我猜Perl API正在做它^

现在,我必须知道我是如何做到的:

db.my_collection.find({_id : ObjectId("4d2a0fae9e0a3b4b32f70000")})
Run Code Online (Sandbox Code Playgroud)

使用Perl API.

perl mongodb

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

如何在 Apache Spark 中爆炸 get_json_object

我的数据框列之一中有以下字符串:

row1:[{"key":"foo"},{"key":"bar"},{"key":"baz"}]
row2:[{"key":"foo"},{"key":"bar"}]
row3:null
etc
Run Code Online (Sandbox Code Playgroud)

我发现 Spark 具有“get_json_object”功能。因此,如果我想使用 xpath 提取数据,我将使用:

 get_json_object($"json", s"$[0].key")
Run Code Online (Sandbox Code Playgroud)

会返回:

"foo"
"foo"
null
Run Code Online (Sandbox Code Playgroud)

但我需要相当于 Spark 的“爆炸”功能。

我发现我可以在 xpath 上使用“*”符号。

 get_json_object($"json", s"$[*].key")
Run Code Online (Sandbox Code Playgroud)

哪个不按预期执行,它将创建一个字符串,如:

[foo,bar,baz]
[foo,baz]
Run Code Online (Sandbox Code Playgroud)

我在另一个 stackoverflow 线程中找到了解决方案,

val jsonElements = (0 until 3).map(i => get_json_object($"json", s"$$[$i].key"))


val jsonElements = .map(i => get_json_object($"json", s"$$[$i].key"))
df.select($"id",explode(array(jsonElements: _*).alias("foo")))
Run Code Online (Sandbox Code Playgroud)

这部分解决了我的问题,因为这个解决方案假定我知道我的阵列的最大深度。Spark 的函数“from_json”需要模式,我有巨大的复杂 JSON 类型需要“无限”的时间来创建模式。

免责声明

我不会使用任何正则表达式/子字符串/等来解析 JSON。使用解析器的整个建议就是这样。

arrays json explode apache-spark apache-spark-sql

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

使用现有的TCP连接发送数据包

我正在使用WPE PRO,我可以捕获数据包并将其发回.我尝试使用WinSock 2(WPE PRO使用的相同的lib),但我不知道如何将数据包发送到现有的TCP连接,如WPE PRO.

http://wpepro.net/index.php?categoryid=2

我该怎么做 ?

windows tcp winsock socks

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