.NET

1,412 次浏览

Squirrel Framework 查询入门 (1)

从 Squirrel Framework 1.0.15 起,我们拥有了 4 种 MongoDB / Cosmos DB 的查询形式,分别是 定制封装、Linq、Lambda 及 Mongo Database Object Command。今天我们通过一个最简单的例子,来介绍一下最常规的查询模式,体验 MongoDB 可以给我们带来的便捷。

如何获取并使用?


正式开始

假设我们在 MongoDB 或者 Microsoft Azure Cosmos DB 中有一个 TestDatabase,其中的 UserCollection 表中拥有许多的用户信息,我们希望得到:

在按照年龄从大到小排序的情况下,选取前三名,18 到 27 岁的老姑娘,并且英文名字中必须带字母 “h”。

啧啧。同时,由于我们每个 User 对象的数据都非常大,出于存储成本及数据传递成本的考虑,我只希望得到她们的中文名和联系电话。

如果我们在常规的 SQL 数据库中进行查询,只需编写如下 SQL 语句。


SELECT TOP 3 
  ChineseName AS Girl,
  MobilePhone AS Tel
FROM
  UserCollection
WHERE
  EnglishName LIKE "%h%"
  AND Gender = 1
  AND Age > 17
  AND Age < 28
ORDER BY
  Age DESC

那么对于 NoSQL 类型的 MongoDB 数据库,我们又该如何基于 Squirrel Framework 进行查询呢?这次我们以 1.0.15 版本最新的 Linq 方式进行查询。


        private dynamic LinqQuery()
        {
            var userCollection = this.userRepository.AsQueryable();
            var regex = new Regex("h", RegexOptions.IgnoreCase);

            var query = from u in userCollection
                        where regex.IsMatch(u.Name)
                                && u.Gender == false
                                && u.Age > 17
                                && u.Age < 28
                        orderby u.Age descending
                        select new { Girl = u.ChineseName, Tel = u.MobilePhone };

            return query.Take(3).ToList();
        }

        // Get the result
        var json = JsonHelper.Serialize(this.LinqQuery());


版本说明

2,115 次浏览
2,174 次浏览
2,772 次浏览

.NET Standard / Core 项目发布 NuGet 包并使包中的配置文件自动生成到 Bin 下

之前在如何创建 NuGet 包的文章中,曾经提到如何将配置文件(文件夹)包含到 NuGet 包中,并在用户安装了这个 NuGet 包并 build 自己工程后,自动将 Config 文件夹复制到 Bin 下。但是当时我并没有找到 .NET Standard 或 .NET Core 项目的配置方法,因此 Squirrel Framework 只能选择通过 .NET Framework 4.6.2 项目形式生成 NuGet 包(.NET Framework 下 NuGet 的配置方式请查看这篇文章《如何在 NuGet 发布自己的类库包》)。

不过最近有时间,通过半天的尝试终于将 4.6.2 的工程切换到 .NET Standard,这次的关键点在于不必自己去写 .nuspec 配置文件之后通过 dotnet pack 命令进行 build,而是改为直接通过编辑项目文件(.csproj)并通过 Visual Studio 在每次 build 时,自动完成 NuGet 包的生成。具体配置步骤如下:

Continue reading

4,030 次浏览

Squirrel Framework 1.0.13 说明文档

Squirrel Framework – 是一个轻量级的 MongoDB 存储封装类库。同时,它还尝试为使用者提供了一系列的拓展类,方便日常的 .NET 开发需求。它致力于让你轻松、快速地构建基于 MongoDB 的应用程序。

下面我们简单介绍一下 Squirrel Framework 的核心功能,只要以下 4 个步骤,你就能完成持久化层的开发。

Continue reading

3,828 次浏览

如何在 NuGet 发布自己的类库包

我们可以将自己实现的类库发布到 NuGet 上,方便在未来开发应用程序时,对已有代码或结构进行复用。以下是在 NuGet 发布自己类库的一个简单介绍。

  1. 首先,我们需要到 nuget.org 注册并 获取 API key
  2. 随后,下载 NuGet 命令行工具,建议将 nuget.exe 注册到系统的环境变量中,方便后续步骤的操作
    Continue reading