小编Ste*_*ven的帖子

MongoDB结构:单个集合与多个较小的集合

我有一个通用的数据库结构问题.在我的场景中,我碰巧使用的是mongodb.

我正在创建一个应用程序,用户可以上传歌曲列表(标题,艺术家等),但不确定是否应该为所有用户设置一个songList集合,或者为每个用户设置单独的songList.user#集合.用户只能查询与他们相关的歌曲,因此用户A永远不会知道用户B的歌曲.

代码示例:

每个用户多个集合

db.songList.userA.find()
{"title": "Some song of user A", "artist": "Some artist of user A"}

db.songList.userB.find()
{"title": "Some song of user B", "artist": "Some artist of user B"}
Run Code Online (Sandbox Code Playgroud)
  • 优点
    • 要查询的集合大小较小
  • 缺点
    • 可维护性
      • 1,000个用户意味着1,000个馆藏

vs具有拥有'用户'字段的单个集合

db.songList.find({"user":"A"})
{"title": "Some song of user A", "artist": "Some artist of user A", "user": "A"}
Run Code Online (Sandbox Code Playgroud)
  • 优点
    • 如果需要,可以灵活地在用户之间进行查询
  • 缺点
    • 性能

我正在尝试建立一个pro/con列表,但仍然在围栏上.鉴于每个用户的歌曲将彼此隔离哪种方法更好?我主要关心的是维护和查询性能.

提前致谢.

database-design mongodb

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

Fiddler - 解密Android HttpsUrlConnection SSL流量

我花了无数个小时试图通过Fiddler为HttpsUrlConnection解密Android SSL流量,但收效甚微.如何使用HttpsUrlConnection可靠地配置Fiddler来解密来自Android应用的SSL流量?

这是我的步骤

  1. 在PC上运行Fiddler(使用适当的设置:捕获HTTPS连接,解密HTTPS流量,允许远程计算机连接)
  2. 在Android设备上配置无线连接,通过运行fiddler的pc进行代理
  3. 从android设备打开浏览器到http:// [ip of pc fiddler]:8888并下载"FiddlerRoot证书".命名并安装它.
  4. 在Android浏览器中打开https://www.google.com并在PC上查看Fiddler中的解密流量.

以上工作.问题是非浏览器的Android流量在Fiddler中显示为连接隧道.我最初的研究表明问题是由于如何通过HttpsUrlConnection信任证书,所以我确保信任所有基于本文的证书https://secure.mcafee.com/us/resources/white-papers/wp-defeating-ssl -cert-validation.pdf

不幸的是,信任所有证书对我来说并不适用于HttpsUrlConnection,所以我停止了调查.几天后,我决定再次尝试,并惊讶地发现正在为HttpsUrlConnection解密小提琴流量!不幸的是我没有做任何进一步的修改来解决这个问题所以我不能完全确定它为什么开始工作.它使用的设备是LG-Optimus L9 Android版本4.0.4并且是根的.

现在我正在尝试为Nexus 7 Android版本4.2.2(未植根)配置此功能,但我在fiddler中看到的所有内容都是连接隧道.由于两个设备上的证书都具有相同的序列号,而我正在测试的应用程序是相同的,因此我难以理解为什么我无法使用其他Android设备配置Fiddler.

总结一下

  • Fiddler可以解密来自LG Optimus的SSL流量,但只显示来自Nexus 7的连接隧道
  • 两个设备都运行相同的应用程序,该应用程序使用HttpsUrlConnection进行网络请求
  • 两个设备都安装了相同的fiddler证书(序列号匹配),并且没有安装其他用户证书.
  • 不要认为这些问题,但......
    • Root设备(LG Optimus Android 4.0.4)使用Proxy Droid指向PC运行的小提琴手
    • 非root设备(Nexus 7 Android 4.2.2)使用内置的"修改网络"来指向PC运行的提琴手

android fiddler httpsurlconnection

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

Google电子表格公式将字符串解析为单元格

使用谷歌电子表格是否有办法将单元格值评估为查找操作中的行?例如,而不是= D2来获取D2的值,我想评估一个单元格的值并将其用作查找另一个单元格的行.我查看了谷歌电子表格公式文档,但未能找到解决方案.

下面的伪代码说明了我正在尝试做什么.

        A     B    C    D
    1         D
    2       =[B1]2     10
    3       =[B1]3      9
    4       =[B1]4      8

鉴于B1的值是"D",我希望单元格B2,B3和B4分别解析为10,9和8.

google-sheets google-drive-api

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

React Native alignSelf中心并拉伸到maxWidth?

我有以下内容

<View style={{maxWidth: 700}}>
  <View style={{backgroundColor: 'red', flexDirection: 'row', justifyContent: 'space-between'}}>
    <Text>Left Item</Text>
    <Text>Right Item</Text>
  </View>
</View>
Run Code Online (Sandbox Code Playgroud)

这是我在大型设备上所期望的工作(垂直黑线是仿真器屏幕的边缘).

在此输入图像描述

我想做的就是将它放在屏幕上.

当我尝试通过将alignSelf:'center'添加到父级时这样做

<View style={{maxWidth: 700, alignSelf: 'center'}}>
  <View style={{backgroundColor: 'red', flexDirection: 'row', justifyContent: 'space-between'}}>
    <Text>Left Item</Text>
    <Text>Right Item</Text>
  </View>
</View>
Run Code Online (Sandbox Code Playgroud)

宽度丢失了.

在此输入图像描述

我认为这是因为默认情况下alignSelf是'拉伸'.有没有办法拉伸内容以使用maxWidth并将其居中在屏幕上?

flexbox reactjs react-native

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

在指令中嵌套指令

关于AngularJS指令,我遇到了一种情况,我从另一个指令中调用指令,我有以下问题.

  1. 为什么我不能在我的链接功能中引用scope.bindValue?有没有办法可以从scope.bindValue计算一个值并将其设置为范围?
  2. 为什么子范围可以在范围内使用"@"绑定:{}但不能在链接函数中使用scope.value = attrs.value?

以下所有内容均可在http://jsfiddle.net/sdg9/AjDtt/13/上看到

HTML:

<directive bind-value="12" value="7"></directive>
Run Code Online (Sandbox Code Playgroud)

JS:

var myApp = angular.module('myApp', []);
var commonTemplate = '<div>{{name}} bind-value is: {{bindValue}} </div><div>{{name}} value is: {{value}} </div><div>{{name}} add one to bind-value is: {{addOneBindValue}} </div><div>{{name}} add one to value is: {{addOneValue}} </div><br/>';

myApp.directive('directive', function () {
    return {
        scope: {
            bindValue: "@",
        },
        template: commonTemplate + '<br/><sub-directive bind-value="{{value}}" value="{{value}}"></sub-directive>',
        restrict: 'E',
        link: function (scope, element, attrs) {
            scope.name = "Directive";
            scope.value = attrs.value;
            scope.addOneBindValue = parseInt(scope.bindValue) + 1; …
Run Code Online (Sandbox Code Playgroud)

angularjs angularjs-directive

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

将项目添加到 Android React Native Developer 菜单

在 React Native 中进行开发构建时,您可以摇动设备或使用菜单按钮调出开发人员菜单。你如何向这个菜单添加一个额外的自定义项目?我无法找到任何关于添加另一个项目的文档,但我认为从开发菜单中说在服务器环境(开发、生产等)之间切换会非常方便,而不是单独构建以针对每个环境进行测试.

android react-native

6
推荐指数
1
解决办法
1066
查看次数