Как запросить поле внутри поддокумента массива, используя 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, если кто-то все еще ищет