2016-04-07 115 views
0

我正在寻找一种方式来清理文件嵌套的领域,例如,考虑我有一个JSON对象:通过deepstream记录的删除记录字段

{ 
    fieldToClean: { 
    fieldA: '..', 
    fieldB: '..', 
    fieldC: '..' 
    } 
} 

我知道,我不需要fieldB了。我找到了一个解决方案,它看起来像:

var record = deepstream.record.getRecord('<proper path>') 
record.whenReady(function(){ 
    var fieldToClean = record.get('fieldToClean') 
    delete fieldToClean.fieldB 
    record.set('fieldToClean', fieldToClean) 
}) 

不知deepstream提供类似:

record.delete('fieldToClean.fieldB') 

record.set('fieldToClean.fieldB', undefined) 

我无法找到文件是这样的。

谢谢你的时间!

回答

1

这个打开实际上存在一个问题,我们的主要设计问题是关于删除数组中的索引。那是空的还是拼接?非常感谢您的反馈!

https://github.com/deepstreamIO/deepstream.io/issues/29

+0

也许,我问有关情况有点不同。你发给我的链接是关于从数组字段中移除一个对象 - 稍微复杂一点。我期望从深层次上看,只是删除(子)字段名称,类似于我们部分修改记录的方式: record.set('myField.mySubfield','value')。 所以它可能看起来像: record.delete('myField.mySubfield')。 让我知道是否有意义为此创建问题或者它是否与您正在处理的问题相同。 –

+0

当涉及到打开的问题,我期望它会拼接,所以我不会有数组字段中的空元素。谈到我期望从上面的例子中得到的功能,我希望看到该字段变得不确定。 –

+0

我们真的不想使用delete作为其破坏性方法,并且如果由于代码中的错误而使用undefined调用,则会意外地从服务器本身删除数据。 我也不确定我们是否会将此逻辑添加到服务器或客户端,因为我们可以在客户端上执行此操作的唯一方法是使用您声明的方法,并且通过服务器需要新的操作协议。 如果您可以将您的笔记添加到github问题上,那么一旦我们充实了一个API /设计,我们就可以开始实施这个工具了,因为这是一个非常有用的功能。 – yasserf