Study - ArangoDB (二)

本文介绍ArangoDB查询语言(AQL)的基础知识,包括如何执行基本的文档操作,如检索、过滤、排序和限制结果集。同时,涵盖了如何使用AQL进行文档更新和替换,以及如何利用各种过滤条件来精确查找所需数据。

阅读文件

  • COLLECTIONS
  • QUERIES
    执行下列代码⬇️
    FOR d IN users
        return d
    
    结果⬇️

    数据库系统的添加属性 ❓
    • _key
      用于在集合中进行标识
    • _id
      数据库中唯一地标识文档
    • _rev
      系统管理的修订版ID

用户可以在创建文档时提供文档密钥,也可以自动分配一个唯一值。以后无法更改。下划线开头的所有三个系统属性_都是只读

  • 特定文档
第一种第二种
RETURN DOCUMENT("Characters", "17489")RETURN DOCUMENT("Characters/17489")
RETURN DOCUMENT("Characters", ["17489", "17521"])RETURN DOCUMENT(["Characters/17489", "Characters/17521"])

更新文件(替换整个文档内容)

替换整个文档内容,可以使用REPLACE代替UPDATE

REPLACE "17489" WITH {
    name: "ned",
    surname: "stark",
    alive: false,
    age: 41,
    traits: ["A","H","C","N","P"]
} IN Characters

Filter

DOCUMENTFILTER
通过文档的键或ID查找文档为文档匹配制定任意条件
  • FILTER
    • 平等条件

      FOR c IN Characters
          FILTER c.name == "Arya"
          RETURN c
      
    • 范围条件

      • 1

        FOR c IN Characters
            FILTER c.age >= 30
            RETURN c.name
        
      • 2

        FOR c IN Characters
            FILTER c.age > 30
            RETURN { name: c.name, age: c.age }
        
    • 多个条件

      第一种第二种
      FOR c IN Characters
      FILTER c.age < 13
      FILTER c.age != null
      RETURN { name: c.name, age: c.age }
      FOR c IN Characters
      FILTER c.age < 13 AND c.age != null
      RETURN { name: c.name, age: c.age }
    • 替代条件

      FOR c IN Characters
          FILTER c.name == "Jon" OR c.name == "Joffrey"
          RETURN { name: c.name, surname: c.surname }
      

limiting

  • LIMIT()

    FOR c IN Characters
        LIMIT 10
        RETURN c.name
    
    FOR c IN Characters
        LIMIT 2, 6
        RETURN c.name
    

Sorting

  • SORT()
    • 按名称排序

      • 1

        FOR c IN Characters
            SORT c.name
            LIMIT 10
            RETURN c.name
        
      • 2

        FOR c IN Characters
            SORT c.name DESC
            LIMIT 10
            RETURN c.name
        
    • 按多个属性排序

      • 1

        FOR c IN Characters
            FILTER c.surname
            SORT c.surname, c.name
            LIMIT 10
            RETURN {
                surname: c.surname,
                name: c.name
            }
        
      • ?

        • 插入数据
          LET data = [
              {"num":"999","hundreds":"900","tens":"90","ones":"9"},
              {"num":"998","hundreds":"900","tens":"90","ones":"8"},
              {"num":"997","hundreds":"900","tens":"90","ones":"7"},
              {"num":"989","hundreds":"900","tens":"80","ones":"9"},
              {"num":"988","hundreds":"900","tens":"80","ones":"8"},
              {"num":"987","hundreds":"900","tens":"80","ones":"7"},
              {"num":"979","hundreds":"900","tens":"70","ones":"9"},
              {"num":"978","hundreds":"900","tens":"70","ones":"8"},
              {"num":"977","hundreds":"900","tens":"70","ones":"7"},
              {"num":"899","hundreds":"800","tens":"90","ones":"9"},
              {"num":"898","hundreds":"800","tens":"90","ones":"8"},
              {"num":"897","hundreds":"800","tens":"90","ones":"7"},
              {"num":"889","hundreds":"800","tens":"80","ones":"9"},
              {"num":"888","hundreds":"800","tens":"80","ones":"8"},
              {"num":"887","hundreds":"800","tens":"80","ones":"7"},
              {"num":"879","hundreds":"800","tens":"70","ones":"9"},
              {"num":"878","hundreds":"800","tens":"70","ones":"8"},
              {"num":"877","hundreds":"800","tens":"70","ones":"7"}
          ]
          FOR d IN data
              INSERT d INTO Numbers
          
        • 按多个属性排序
          FOR c IN Numbers
          FILTER c.hundreds
          SORT c.hundreds, c.tens, c.ones
          RETURN {
              hundreds: c.hundreds,
              tens: c.tens,
              ones: c.ones
          }
          
    • 按年龄排序

      FOR c IN Characters
          FILTER c.age
          SORT c.age
          LIMIT 10
          RETURN {
              name: c.name,
              age: c.age
          }
      

参考文章:https://www.arangodb.com/docs/3.4/aql/tutorial-filter.html

跟网型逆变器小干扰稳定性分析与控制策略优化研究(Simulink仿真实现)内容概要:本文围绕跟网型逆变器的小干扰稳定性展开分析,重点研究其在电力系统中的动态响应特性及控制策略优化问题。通过构建基于Simulink的仿真模型,对逆变器在不同工况下的小信号稳定性进行建模与分析,识别系统可能存在的振荡风险,并提出相应的控制优化方法以提升系统稳定性和动态性能。研究内容涵盖数学建模、稳定性判据分析、控制器设计与参数优化,并结合仿真验证所提策略的有效性,为新能源并网系统的稳定运行提供理论支持和技术参考。; 适合人群:具备电力电子、自动控制或电力系统相关背景,熟悉Matlab/Simulink仿真工具,从事新能源并网、微电网或电力系统稳定性研究的研究生、科研人员及工程技术人员。; 使用场景及目标:① 分析跟网型逆变器在弱电网条件下的小干扰稳定性问题;② 设计并优化逆变器外环与内环控制器以提升系统阻尼特性;③ 利用Simulink搭建仿真模型验证理论分析与控制策略的有效性;④ 支持科研论文撰写、课题研究或工程项目中的稳定性评估与改进。; 阅读建议:建议读者结合文中提供的Simulink仿真模型,深入理解状态空间建模、特征值分析及控制器设计过程,重点关注控制参数变化对系统极点分布的影响,并通过动手仿真加深对小干扰稳定性机理的认识。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值