MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Zapisywanie w Javie springdata dokumentu mongoDB z ograniczoną liczbą tablic ($slice i $sort)

W końcu otrzymałem rozwiązanie za pomocą tego kodu:

// Define the search query
BasicDBObject searchQuery = new BasicDBObject().append("idU", idUser);

// To create the json query to modify
BasicDBObject logDocument = new BasicDBObject();

// Create the object and add it to a list (because the $each require a list)
List<DBObject> list = new ArrayList<DBObject>();
DBObject object = new BasicDBObject().append("text", logMessage.getText());
object.append("level", logMessage.getLevel())
object.append("date", logMessage.getDate());
list.add(object);

// Create the $sort and $slice query at the same time
logDocument.append(
    "$push",
    new BasicDBObject().append("logs", new BasicDBObject().append("$each", list).append("$sort", new BasicDBObject().append("date", 1))
            .append("$slice", -10)));

String json = "{findAndModify:\"collectionLog\", query:" + searchQuery.toString() + ", update: " + logDocument.toString() + ", upsert:true}";

try {
     getMongoTemplate().executeCommand(json);
} catch (Exception e) {
     System.out.println(e);
}

Mam nadzieję, że przyda się to komuś innemu!!!



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Node.js i obiekt Passport nie mają metody validPassword

  2. Uruchamianie zreplikowanej bazy danych MongoDB 4.2 w Kubernetes:konfiguracja replset nie jest odbierana

  3. Jak zaimportować Mongodb ObjectId z pliku CSV za pomocą mongoimport?

  4. zaktualizuj głęboko zagnieżdżoną tablicę mongodb

  5. Ograniczasz wyniki w MongoDB, ale nadal otrzymujesz pełną liczbę?