小编Pio*_*pla的帖子

在MongoDB中实现数据版本控制的方法

您能否分享一下您如何在MongoDB中实现数据版本控制?(我问过关于Cassandra的类似问题.如果你有任何想法,哪个数据库更好,请分享)

假设我需要在简单的地址簿中对记录进行版本控制.(地址簿记录存储为平面json对象).我期待历史:

  • 将很少使用
  • 将一次性使用以"时间机器"的方式呈现它
  • 单个记录的版本不会超过几百个.历史不会过期.

我正在考虑以下方法:

  • 创建新的对象集合以存储记录的历史记录或对记录的更改.它将为每个版本存储一个对象,并引用地址簿条目.这些记录如下:

    {
     '_id': 'new id',
     'user': user_id,
     'timestamp': timestamp,
     'address_book_id': 'id of the address book record' 
     'old_record': {'first_name': 'Jon', 'last_name':'Doe' ...}
    }
    

    可以修改此方法以存储每个文档的版本数组.但这似乎是没有任何优势的较慢的方法.

  • 将版本存储为附加到通讯簿条目的序列化(JSON)对象.我不确定如何将这些对象附加到MongoDB文档.也许是一个字符串数组.(使用CouchDB进行简单文档版本控制后建模)

database-versioning mongodb

289
推荐指数
6
解决办法
11万
查看次数

在C#中创建值列表的快速方法?

我正在寻找一种在C#中创建值列表的快捷方法.在Java中,我经常使用下面的代码段:

List<String> l = Arrays.asList("test1","test2","test3");
Run Code Online (Sandbox Code Playgroud)

除了下面明显的一个之外,C#中是否还有其他等价物?

IList<string> l = new List<string>(new string[] {"test1","test2","test3"});
Run Code Online (Sandbox Code Playgroud)

c# list

86
推荐指数
7
解决办法
9万
查看次数

检查对象是否是C#中的数字

我想检查的对象是一个数字,这样.ToString()会导致包含数字和字符串+,-,.

是否可以通过简单的类型检查.net(如:)if (p is Number)

或者我应该转换为字符串,然后尝试解析加倍?

更新:澄清我的对象是int,uint,float,double等等它不是一个字符串.我正在尝试创建一个将任何对象序列化为xml的函数,如下所示:

<string>content</string>
Run Code Online (Sandbox Code Playgroud)

要么

<numeric>123.3</numeric>
Run Code Online (Sandbox Code Playgroud)

或提出例外.

.net c# serialization xml-serialization

82
推荐指数
6
解决办法
11万
查看次数

是否有任何理由使用C而不是C++进行嵌入式开发?

我的硬件C++和C89上有两个编译器

我正在考虑将C++与类一起使用但没有多态(以避免使用vtable).我想使用C++的主要原因是:

  • 我更喜欢使用"内联"函数而不是宏定义.
  • 我想使用命名空间,因为我的前缀使代码混乱.
  • 我认为C++有点类型更安全,主要是因为模板和详细的转换.
  • 我真的很喜欢重载的函数和构造函数(用于自动转换).

在开发非常有限的硬件(4kb RAM)时,您是否认为有理由坚持使用C89?

结论

谢谢你的回答,他们真的很有帮助!

我认为这个主题通过,我会坚持使用C主要是因为:

  1. 在C中预测实际代码更容易,如果你只有4kb的ram,这非常重要.
  2. 我的团队主要由C开发人员组成,因此不会经常使用高级C++功能.
  3. 我找到了一种在C编译器(C89)中内联函数的方法.

因为你提供了很多好的答案,所以很难接受一个答案.不幸的是我不能创建一个wiki并接受它,所以我会选择一个让我最想的答案.

c c++ embedded c89

77
推荐指数
14
解决办法
4万
查看次数

如何在Objective-C中的属性中存储块?

我想将objective-c块存储在属性中供以后使用.我不知道该怎么做所以我google了一下,关于这个主题的信息很少.但我最终设法找到了解决方案,我认为可能值得为像我这样的其他新手分享.

最初我认为我需要手动编写属性才能使用Block_copy和Block_release.

幸运的是,我发现块是NSObjects- copy/ - release等价于Block_copy/ Block_release.所以我可以@property (copy)用来自动生成setter和getter.

objective-c objective-c-blocks

76
推荐指数
3
解决办法
4万
查看次数

如何#import <NSObjCRuntime.h>使用objc_msgSend

我想导入运行时的头文件以使用objc_msgSend,但我得到:

error: NSObjCRuntime.h: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我应该在标题搜索路径中添加一些内容吗?

objective-c ios

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

如何在scala控制台中测量语句的时间?

我正在使用Scala来衡量java的正则表达式引擎的性能.下面的正则表达式大约在3秒内执行,但我无法使用System.currentTimeMillis进行测量.(最后一个表达式返回0)

scala> val b = System.currentTimeMillis; val v = new Regex("(x+)+y").findAllIn("x"*25); b-System.currentTimeMillis
b: Long = 1330787275629
v: scala.util.matching.Regex.MatchIterator = empty iterator
res18: Long = 0
Run Code Online (Sandbox Code Playgroud)

您现在为什么最后返回的值为0,而不是scala在执行regexp时花费的ms量?

regex scala

30
推荐指数
3
解决办法
3万
查看次数

SQLAlchemy和django,生产准备好了吗?

SQLAlchemy除了DjangoORM 之外还有人使用过吗?

我想使用Django的ORM进行对象操作,使用SQLalchemy进行复杂查询(比如那些需要左外连接的查询).

可能吗?

注意:我知道django-sqlalchemy但该项目似乎没有生产就绪.

python database django sqlalchemy

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

为什么C#在实现接口时不允许继承返回类型

有没有合理的理由说明为什么下面的代码在C#中不合法?

class X: IA, IB
{
    public X test() // Compliation Error, saying that X is not IB
    {
        return this;
    }
}

interface IA 
{
    IB test();
}
interface IB { };
Run Code Online (Sandbox Code Playgroud)

.net c#

23
推荐指数
3
解决办法
3179
查看次数

如何在python中使用imaplib获取电子邮件正文?

我想从IMAP4服务器获取整个消息.在python docs中,如果发现这段代码有效:

>>> t, data = M.fetch('1', '(RFC822)')
>>> body = data[0][1]
Run Code Online (Sandbox Code Playgroud)

我想知道我是否总能相信数据[0] [1]返回消息正文.当我运行'RFC822.SIZE'时,我只有一个字符串而不是一个元组.

我已经浏览了rfc1730,但我无法找出'RFC822'的正确响应结构.从imaplib文档中判断获取结果结构也很困难.

这是我在获取时获得的内容RFC822:

('OK', [('1 (RFC822 {858569}', 'body of the message', ')')])
Run Code Online (Sandbox Code Playgroud)

但当RFC822.SIZE我拿到我的时候:

('OK', ['1 (RFC822.SIZE 847403)'])
Run Code Online (Sandbox Code Playgroud)

我该如何正确处理数据[0]列表?我可以相信,当它是一个元组列表时,元组恰好有3个部分而第二部分是有效负载吗?

也许你知道imap4的更好的库?

python imaplib

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