Как запросить поле внутри поддокумента массива, используя ottomanjs, используя построитель запросов

Я не смог выполнить запрос с использованием поля поддокумента массива с помощью ottomanJS, и я не могу найти документацию для построения запроса для поддокумента массива, любая помощь будет оценена по достоинству.

      import { Schema, Query, getDefaultInstance } from "ottoman";

const  TestSchema = new Schema({
block1:{
    field1:{type: String, required: true},
    field2:{type: String, required: true}
},
block2:[{
    field3:{type: String, required: true},
    field4:{type: String, required: true}
}]
})

const ottoman = getDefaultInstance();
const query = new Query({}, 'bucketName.scopeName.collectionName');
const where_exp = {block2[{field3}]:{$eq: 'xyz'}};
const result = query
  .select()
  .where(where_exp)
  .build();
console.log(result);

1 ответ

      const where_exp = {
$any: {
          $expr: [{ b: { $in: ‘block2’ } }],
          $satisfies: { ‘b.field3’: {$eq: “xyz”} },
     }

};

// это создаст действительный запрос N1Ql SELECT * FROM travel-sample.inventory.hotel WHERE ANY B IN block2 УДОВЛЕТВОРИТЕЛЬНО b.field3="xyz"

Вот ответ, который я получил с форума Couchbase, если кто-то все еще ищет

Другие вопросы по тегам