【问题标题】:How to build or like query using Orientjs?如何使用 Orientjs 构建或喜欢查询?
【发布时间】:2017-10-17 04:59:16
【问题描述】:

我正在开发用于生成 orientdb 查询的简单查询构建器。 Orientjs 有 statement.js 可以用来生成查询,但我不确定我们是否可以用来生成所有类型的查询。

例如:

select * from Employee where (FirstName like "A%" or FirstName like "B%") and (LastName like "G%" or LastName like "F%")

我尝试了不同的选项来使用 orientjs 语句生成上述查询,但不能。另外,我们如何生成查询来使用插入、选择查询来复制记录?

statement.js 是否支持生成这种类型的查询?

【问题讨论】:

    标签: orientdb orientdb2.2 orientjs


    【解决方案1】:

    对于复杂的 where 子句,您可以只使用原始字符串:

    db.select()
      .from('Employee')
      .where('(FirstName like "A%" or FirstName like "B%") and (LastName like "G%" or LastName like "F%")').all();
    

    要使用 select/insert 创建一个顶点的副本,您可以通过 db.let 函数创建一个事务,例如

    return this.db
        .let('original', (c) => {
            c.select()
            .from('Employee')
            .where('(FirstName like "A%" or FirstName like "B%") and (LastName like "G%" or LastName like "F%")')
            })
         .let('copy', (c) => {c
             .create('vertex','Employee')
             .set('FirstName = $original[0].FirstName')
             .set('LastName = $original[0].LastName')
              })
        .commit()
        .return('$copy')
        .one();
    

    【讨论】:

      猜你喜欢
      • 2014-03-30
      • 2011-01-28
      • 2012-12-23
      • 2012-09-18
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      • 2013-08-26
      • 2019-03-27
      相关资源
      最近更新 更多