में एक गैर-कुंजी विशेषता पर एकाधिक क्वेरी फ़िल्टरों को संयोजित करना इस साल की शुरुआत में अमेज़ॅन announced गैर-महत्वपूर्ण विशेषताओं पर क्वेरी फ़िल्टर का समर्थन।AWS DynamoDB - जावा
क्या शर्तों को एक विशेषता मान पर जोड़ा जा सकता है? उदाहरण के लिए, इस परिदृश्य में मैं उन सभी आइटमों को पुनर्प्राप्त करना चाहता हूं जो एकल 'गैर-कुंजी' कॉलम में मानों की एक निश्चित सूची से मेल नहीं खाते हैं।
उनके दस्तावेज़ में कहा गया है कि प्रत्येक स्थिति केवल NOT_EQUALS
या BEGINS_WITH
जैसी तुलनाओं के लिए एक विशेषता मान रख सकती है। निम्नलिखित इसलिए काम नहीं करता:
HashMap<String, Condition> queryFilter = new HashMap<String, Condition>();
List<AttributeValue> AttributeValues = new ArrayList<AttributeValue>();
AttributeValues.add(new AttributeValue().withS("someValue1"));
AttributeValues.add(new AttributeValue().withS("someValue2"));
Condition attributeCondition = new Condition()
.withComparisonOperator(ComparisonOperator.NE)
.withAttributeValueList(AttributeValues);
queryFilter.put("COLUMN_1", attributeCondition);
DynamoDBQueryExpression<Item> queryExpression = new DynamoDBQueryExpression<Item>()
.withHashKeyValues(itemKey)
.withQueryFilter(queryFilter)
.withLimit(pPageSize);
यह केवल IN
तुलना ऑपरेटर की तरह लग रहा विशेषता मान की एक सूची रख सकते हैं। आदर्श रूप से इन स्थितियों को श्रृंखला योग्य होना चाहिए? चूंकि क्वेरी फिल्टर एक हैश नक्शा है हम उसी स्तंभ पर एक से अधिक की स्थिति नहीं डाल सकते (मैं कोशिश की है):
Condition c1 = new Condition()
.withAttributeValueList(new AttributeValue().withS("someValue1"))
.withComparisonOperator(ComparisonOperator.NE);
Condition c2 = new Condition()
.withAttributeValueList(new AttributeValue().withS("someValue2"))
.withComparisonOperator(ComparisonOperator.NE);
DynamoDBQueryExpression<Item> queryExpression = new DynamoDBQueryExpression<Item>()
.withHashKeyValues(itemKey)
.withConditionalOperator(ConditionalOperator.AND)
.withQueryFilterEntry("COLUMN_1", c1)
.withQueryFilterEntry("COLUMN_1", c2)
.withLimit(pPageSize);
कोई मदद या स्पष्टीकरण
बहुत सराहना की जाएगी!
धन्यवाद
आपके प्रश्न का उत्तर पोस्ट करने के लिए समय निकालने के लिए धन्यवाद –