2015-04-28 26 views
6

Sto migrando le mie aplicazioni a MongoDb 3.0.2. Non ho problemi con gli inserimenti, trova ed elimina. Ma, problemi con l'aggiornamento. Specialmente con eq().Aggiornamenti MongoDB con driver java versione 3.0

In questa frase:

coll.updateOne(eq("_id", id), new Document("$set", new Document("name", name))); 

La variabile id è definito ObjectId. Eclipse mi dà un errore:

The method eq(String, ObjectId) is undefined for the type SystemDAO (my java class).

Cosa sto facendo male? Ho seguito gli esempi nei documenti del driver Mongo Java.

+0

Si prega di mostrare la dichiarazione e l'inizializzazione di 'id' sembra che non sia definita come' ObjectId' – Simulant

+0

booleano pubblico modifyName (ID ObjectId, nome String) {coll.updateOne (eq ("_ id", id), nuovo documento ("$ set", nuovo documento ("nome", nome)));} – Augusto

+0

Penso che ciò che Eclipse non riconosce sia la funzione eq – Augusto

risposta

7

è necessario importare il metodo statico eq dal pacchetto com.mongodb.client.model.Filters.

Aggiungi il fronte della classe alle vostre altre importazioni:

import static com.mongodb.client.model.Filters.*; 

In Eclipse si dovrebbe dare una soluzione rapida per importare il pacchetto giusto se si fa un mouse sopra il vostro errore. Ma per le importazioni statiche questo non funziona sempre.

+0

Grazie mille !! Ha funzionato!!. Non so perché Eclipse non mi ha dato il suggerimento di aggiungere quell'importazione. Mi ha dato solo 1 quick fiz disponibile: Crea metodo eq (String, ObjectId) e nulla su aggiungi l'importazione – Augusto

Problemi correlati