小编And*_*ich的帖子

Sql数据库与文档数据库?

小介绍:

  1. 我试图用sql数据库,实体框架,linq开发我的项目.我有表'用户',例如我有用户教育列表.我问自己:'用户可以有多少教育?1,2,10 ......'?并且似乎99%的情况不超过10.因此对于sql中的这样的示例我需要创建引用表'Educations'.对?如果我需要显示用户教育和用户我需要加入上面提到的表...但是如果用户有10个甚至更多的集合,每个集合不超过10个项目呢?我需要在sql中创建10个引用表?当我需要显示时加入所有这些?为了获得更好的性能,我创建了具有我需要在ui上显示的数据形状的denormized表.每次用户更新时,我都需要更新已批准的结构.

  2. 现在我重新开发了我的项目以使用文档数据库(MongoDB).我已经为User创建了一个文档,其中包含了所有10个集合.

可能是我失去了什么?但似乎文档数据库在这里获胜.它非常快速且非常容易支持.+1来记录数据库.

那么,您对什么更好地使用文档数据库或SQL数据库有什么看法?

什么时候我应该使用文档数据库和什么时候sql?

sql performance mongodb nosql

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

Uploadify ashx文件Context.Session获取null

我在我的网站上有一个文件上传,这是使用uploadify完成的,它使用ashx页面将文件上传到数据库.它在IE中工作正常,但在Mozilla中,context.Session变为null.我也习惯于IReadOnlySessionState读取会话.

我怎么能像IE一样在Mozilla中获得会话.

这是我做过的ashx代码

public class Upload : IHttpHandler, IReadOnlySessionState 
{    
    HttpContext context;
    public void ProcessRequest(HttpContext context)
    {
        string UserID = context.Request["UserID"];

        context.Response.ContentType = "text/plain";
        context.Response.Expires = -1;
        XmlDocument xDoc = new XmlDocument();
        HttpPostedFile postedFile = context.Request.Files["Filedata"];
        try
        {
            if (context.Session["User"] == null || context.Session["User"].ToString() == "")
            {
                context.Response.Write("SessionExpired");
                context.Response.StatusCode = 200;
            }
            else
            {
                  // does the uploading to database
            }
        }
   }
}
Run Code Online (Sandbox Code Playgroud)

在IE中Context.Session["User"]总是有值,但在Mozilla中它始终为null

.net c# asp.net ihttphandler uploadify

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

MongoDB c#:关于分页的问题

使用某些查询的分页结果我需要从哪个页面获取一个点.当您将该点推出范围时,该对象将返回位于右侧页面的数据,从而在该页面打开分页结果.
如果可以像这个样本一样获得分页结果,那么我如何从一个项目中获取来自哪个页面?

paging
.skip(PAGE_SIZE * (PAGE_NUMBER - 1)).limit(PAGE_SIZE)

    public List<BsonItem> GetData(QueryComplete query, int take, int skip, SortByBuilder sort)
        {
            var cursor = Db.Data.FindAs<BsonItem>(query);

            if (skip > 0)
                cursor.SetSkip(skip);
            if (take > 0)
                cursor.SetLimit(take);
            if (sort != null )
                cursor.SetSortOrder(sort);
            return cursor.ToList();
        }
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.

c# pagination mongodb mongodb-.net-driver

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

使用C#从MongoDB中获取继承的实例

我正在使用官方的MongoDb C#驱动程序.

我的场景:我将对象存储到MongoDb中.所有对象都是从同一根类继承的类的实例.在设计时我不知道所有可以存储的类(即它们都可以插入) - 所以我需要一些方法告诉序列化器/驱动程序如何将类映射到文档(文档中的描述符).

有人有任何想法吗?

c# mongodb mongodb-.net-driver

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

反序列化期间的'意外元素:XX'MongoDB C#

我正在尝试使用以下代码将对象持久化到MongoDB中:

public class myClass
{
    public string Heading { get; set; }
    public string Body { get; set; } 
}

static void Main(string[] args)
{
    var mongo = MongoServer.Create();
    var db = mongo.GetDatabase("myDb");
    var col = db.GetCollection<BsonDocument>("myCollection");
    var myinstance = new myClass();
    col.Insert(myinstance);

    var query = Query.And(Query.EQ("_id", new ObjectId("4df06c23f0e7e51f087611f7)));
    var res = col.Find(query);
    foreach (var doc in res)
    {
        var obj = BsonSerializer.Deserialize<myClass>(doc);
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,在尝试反序列化文档时,我收到以下异常'意外元素:_id'.

那么我需要以另一种方式反序列化吗?这样做的首选方式是什么?

TIA

索伦

persist mongodb c#-4.0 mongodb-.net-driver

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

Mongodb 单个数据库 vs 每个客户端的集合 vs 每个客户端的数据库

我想使用 mongodb 和锂构建一个网络服务。什么是更好的:

  • 将所有客户端的数据存储在一个集合中(例如,多个客户端的所有交易文档都存储在一个集合中)

  • 创建多个集合,例如 transactions_client1、transaction_client2 等。

  • 每个客户一个数据库

系统必须是可扩展的并且必须易于部署

mongodb lithium

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

Mongo 推送到数组内的数组

我是 mongo 的新手,到目前为止使用它没有问题。直到我坚持这一点。我需要将文档推送到数组内的数组。可以参考下面的json。

{
    'user_id':'{1231mjnD-32JIjn-3213}',
    'name':'John',
    'campaigns':
        [
            {
                'campaign_id':3221,
                'start_date':'12-01-2012',
                'messages':
                    [
                        {
                            'message_id':211134,
                            'email':'john@gmail.com'
                        }
                    ]
            },
            {
                'campaign_id':3222,
                'start_date':'13-01-2012',
                'messages':
                    [
                        {
                            'message_id':315521,
                            'email':'john@gmail.com'
                        }
                    ]
            }
        ]
}
Run Code Online (Sandbox Code Playgroud)

我想将一个文档推送到活动数组中的一组消息(无论排序如何)。这意味着,我需要将新文档附加到消息数组中。所有这些消息都来自每个用户的另一个数组或活动。我使用 python 所以我的代码会是这样的。

query = {"user_id" : "{1231mjnD-32JIjn-3213}", "campaigns.campaign_id": 3221}
message = {"message_id":4213122, "email":"john@gmail.com"}
op = {"$push" : {"campaigns.messages":message}}
mongo.TestDatabase.members.update(query, op)
Run Code Online (Sandbox Code Playgroud)

执行时没有错误。但是文档似乎没有变化(没有进行更新)。我在这里做错了什么?

python mongodb

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

DataInputStream类在C#中等效

我想知道C#中等效的Java DataInputStream类是什么

c# java datainputstream

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

将asp.net Mvc从3降级为2

我知道这是一个相当奇怪的问题,请不要激怒我:)

我有一个具体的需要"降级"当前Asp.Net MVC 3(.NET框架4)应用到Asp.Net MVC 2(.NET框架3.5),因为我们共同的托管服务提供商不支持.NET 4.0(我知道这是疯狂的考虑自2010年4月12日开始零售以来,2009年5月首次推出测试版,但这不是帖子的重点.

是否有任何工具,指南或任何可能有助于此过程的东西?我有点迷失,因为我升级了许多应用程序,但我从来没有必要降级一个.

除了严格意义上的MVC之外,我正在使用一个带有EF Code First的数据层(也许nhibernate将是替换它的最佳工具?)

任何帮助,提示,信息,任何赞赏.

谢谢.

编辑:更改托管服务提供商不是一个选项,否则我根本不会发布这个.我个人反对这种降级 - 我发现它完全没有意义 - 但它仍然是唯一的选择.

.net c# asp.net-mvc downgrade

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

MongoDB字段数组搜索(C#,如何?)

请告诉我如何通过fields-arrays进行搜索?我有一些类型的领域List<Int64>.例如,第一个文档具有数字[1,2,3,4]的字段数组,第二个文档具有数字[4,5,6,7]的字段.

我想找到我的字段包含3和4个数字的文档,因此它是第一个文档.我正在寻找基于官方MongoDB C#驱动程序的示例;)

非常感谢你!!!

c# search mongodb mongodb-.net-driver

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