MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

MongoDB Java:Tìm kiếm các đối tượng trong Mongo bằng toán tử QueryBuilder $ in không trả về kết quả nào

Bây giờ bạn đang làm tương đương với:

db.col.find({$in:[{Id:id1}, {Id:id2}, ..., {Id:idN}]})

Đây không phải là một truy vấn hợp lệ vì bạn không chỉ định $ trong trường nào. Tôi cho rằng bạn muốn:

db.col.find({Id:{$in:[id1, id2, ..., idN]}})

Thay đổi mã xây dựng truy vấn của bạn cho phù hợp và bạn sẽ ổn.

CHỈNH SỬA:Thêm mã đúng:

public static void getDocuments(List<Integer> documentIds) {

            BasicDBList docIds = new BasicDBList();
            docIds.addAll(documentIds)
            DBObject inClause = new BasicDBObject("$in", docIds);
            DBObject query = new BasicDBObject("Id", inClause);
            DBCursor dbCursor = mongoRule.getDatabase().getCollection("mycollection").find(query);
            System.out.println(dbCursor == null);
            if (dbCursor != null) {
                while (dbCursor.hasNext()) {
                    System.out.println("object -  " + dbCursor.next());
                }
            }
        } 

Xin lưu ý rằng điều này giả định rằng "Id" là một cái gì đó khác với "_id"




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. node-mongodb-native:Làm cách nào để chia sẻ đối tượng db api của lệnh gọi lại kết nối thông qua ứng dụng của tôi

  2. Thống kê trực quan cho Máy chủ MongoDB của bạn

  3. Làm cách nào để chạy Spring với MongoDB bị vô hiệu hóa nhưng vẫn được cài đặt?

  4. Lỗi kết nối Mongodb thông qua docker trong springboot

  5. Cách đăng ký và gọi một lược đồ trong mongoose