gpt4 book ai didi

gun - 对枪支数据库中的键感到困惑

转载 作者:行者123 更新时间:2023-12-05 04:13:24 25 4
gpt4 key购买 nike

var stallone = {stallone:{first:'Sylvester',last:'Stallone',gender:'male'}};
var gibson = {gibson:{first:'Mel',last:'Gibson',gender:'male'}};
var movies = gun.get('movies')
movies.put(stallone).key('movies/action').key('movies/actors').key('movies/action/rambo') movies.put(gibson).key('movies/action').key('movies/actors').key('movies/action/roadwarrior').key('movies/comedy');

movies.get('movies/action').val();
returns {_: Object, stallone: Object, gibson: Object} Nice.

movies.get('movies/comedy').val();
returns {_: Object, stallone: Object, gibson: Object} Erm..What is Sly doing here? Not Nice!!

gun.get('movies/comedy').val();
returns {_: Object, stallone: Object, gibson: Object} same thing!!

这种行为会导致几个问题:
1)为什么要费心制作电影?我正在使用 var movies = gun.get('movies') 那么为什么我必须使用 'movies' 创建 key 又在里面? “电影”应自动添加前缀。
2)即使多个键可以工作,也不是很直观。如果我们能做到就好了 movies.put(gibson).keys([' Actor ','喜剧',' Action ']).

注意:如果能在一个循环中完成,我会很高兴。但这不管用

var gibsonKeys = ['actors','action','comedy','dieHard']
gibsonKeys.forEach(function(key){
movies.put(gibson).key('movies/'+key);
// could be gun.put(gibson).key('movies/'+ key) as well
});

作为旁注...我知道键只是字符串而不是数据的真实路径 ;)

最佳答案

马克·纳达尔回答

有几点需要注意:

movies.put(data).key('foo/bar')

正在将数据放在电影中,并使用“foo/bar”对电影进行键控。这是一个更新操作,而不是插入操作。所以从 put 返回的是相同的上下文(电影),而不是一些子文档(例如,您可以使用 movies.put(data).path('stallone') 访问该子文档).如果您想插入一条记录,有点像有一个表,请尝试使用 .set - 查看这篇文章:https://github.com/amark/gun/wiki/graphs其中介绍了各种数据类型的一些示例。
实际上,对于 .set 这可能更好:https://medium.com/@sbeleidy/a-weekend-with-gun-a61fdcb8cc5d#.49nuy86gs
键不同于标签,看起来您可能想要这样的东西:https://github.com/PsychoLlama/labelmaker .
键就像键/值一样,你可以在某物上有多个键,但它们都指向同一个东西。上面的模块给你标签,它允许你拿多个不同的东西并用相同的标签标记它们。在引擎盖下,完成此操作的方式是它创建一个集合(见上文,将其视为无序列表),标签被键入,然后您可以迭代所有多个不同的项目在该列表中。那有意义吗?尽管允许 key 接受多个 key 可能仍然是个好主意

但是,上面的行为对于 key 是正确的,但看起来你想要使用的是一个像系统这样的标签,你可以用上面的模块添加到 GUN。

关于gun - 对枪支数据库中的键感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37761255/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com