/ /। and () QueryBuilder क्वेरी में अनदेखा हो जाता है - जावा, मंगोल

.and () QueryBuilder क्वेरी - जावा, mongodb में अनदेखा हो जाता है

मैं अपनी क्वेरी को एक साथ रखने के लिए QueryBuilder वर्ग का उपयोग कर रहा हूं।

QueryBuilder queryBuilder = new QueryBuilder();
Pattern regex = Pattern.compile("^((?!Salt).)*$");
queryBuilder.put("contract").notEquals("none").and("contract").notEquals(null).and("contract").regex(regex).get();

मेरी समस्या यह है कि यह केवल अंतिम और स्थिति लेता है इसलिए मेरी क्वेरी इस तरह दिखती है:

{ "contract" : { "$regex" : "^((?!Salt).)*$"}}

मैं नहीं जानता कि मैं क्या गलत कर रहा हूँ। मैंने भी पुट () के बजाय (और) डालने की कोशिश की https://stackoverflow.com/a/24025462/3811673.

उत्तर:

उत्तर № 1 के लिए 1

आप प्रत्येक अभिव्यक्ति को एक एकल में लपेटने का भी प्रयास कर सकते हैं and() ऑपरेशन, कुछ इस तरह

BasicDBObject document = new BasicDBObject();
Pattern regex = Pattern.compile("^((?!Salt).)*$");
QueryBuilder queryBuilder = new QueryBuilder();
queryBuilder.and(
new QueryBuilder().put("contract").notEquals("none").get(),
new QueryBuilder().put("contract").notEquals(null).get(),
new QueryBuilder().put("contract").regex(regex).get()
);
document.putAll(queryBuilder.get());
DBCursor cursor = getDbCollection().find(document);