代码之家  ›  专栏  ›  技术社区  ›  Run

RejectDB-如何通过查询获取单个文档?

  •  0
  • Run  · 技术社区  · 7 年前

    如何在数据库中仅通过查询获取一个文档?

    例如,我想通过以下查询获取文档:

     let searchQuery = {
        name: 'rob'
     }
    
    var cursor = await r.table('users').filter(searchQuery).run(connection)
      var user = await cursor.toArray()
      console.log(user)
    

    结果:

    [ { email: 'fooz@bar.com',
        id: '00e18124-714b-4298-aa34-5126ebda8828',
        name: 'rob' } ]
    

    Filter method list of users 同名-“rob”。

    get method :

    r.table('posts').get('a9849eef-7176-4411-935b-79a6e3c56a74').run(conn, callback);
    

    结果:

    { email: 'fooz@bar.com',
      id: '00e18124-714b-4298-aa34-5126ebda8828',
      name: 'rob' }
    

    但是这个方法 文档id .

    有什么想法吗?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Lyubomyr Shaydariv    7 年前

    get filter nth 其目的是通过流/数组元素的位置或其接近的替代项来查询流/数组元素 () . 下面是一个示例:

    .filter({ name: 'rob' })`
    

    [{"email":"fooz@bar.com","id":"230de013-5d6a-436e-a7e9-a891c01913e5","name":"rob"}]
    

    但是下面的问题

    .filter({ name: 'rob' }).nth(0)
    .filter({ name: 'rob' })(0)
    

    都会回来吗

    {"email":"fooz@bar.com","id":"230de013-5d6a-436e-a7e9-a891c01913e5","name":"rob"}
    

    注意,两者都会抛出 ReqlNonExistenceError: Index out of bounds: 0 default 操作员:

    .filter({ name: 'not-rob' }).nth(0).default(null)
    

    由于“树状视图”和“表格视图”都将单个元素数组显示为单个对象,因此在“原始视图”选项卡处于活动状态的情况下使用RejectDB data explorer进行测试。我几乎可以肯定RejectDB查询引擎足够智能,可以使用 nth(0)