Ich versuche, ein Feld in einer Sammlung einer MongoDB-Datenbank mit Rust zu aktualisieren. Ich war mit diesem Code:Aktualisieren von Daten in MongoDB mit Rust
extern crate mongodb;
use mongodb::{Client, ThreadedClient};
use mongodb::db::ThreadedDatabase;
fn main() {
let client = Client::connect("ipaddress", 27017);
let coll = client.db("DEV").collection("DEV");
let film_a = doc!{"DEVID"=>"1"};
let filter = film_a.clone();
let update = doc!{"temp"=>"5"};
coll.update_one(filter, update, None).expect("failed");
}
Das gibt mir eine Fehlermeldung, Update nur mit dem $
Bediener arbeiten, die nach einiger Suche scheint zu bedeuten, soll ich $set
verwenden. Ich habe verschiedene Versionen von diesem versucht, aber nur nicht übereinstimmende Typfehler und so erhalten.
coll.update_one({"DEVID": "1"},{$set:{"temp" => "5"}},None).expect("failed");
Wohin gehe ich falsch?
Die DB sieht so aus.
db.DEVICES.find()
{ "_id" : ObjectId("59a7bb747a1a650f1814ef85"), "DEVID" : 1, "temp" : 0,
"room_temp" : 0 }
{ "_id" : ObjectId("59a7bb827a1a650f1814ef86"), "DEVID" : 2, "temp" : 0,
"room_temp" : 0 }
Ich habe versucht, das Set in Anführungszeichen und eine Menge anderer Sachen und es funktioniert immer noch nicht, ich denke, es ist nur gebrochen. Ich habe angefangen, den C-Wrapper zu benutzen, aber sie haben keine Beispiele und ich bin noch ziemlich neu dazu. – dmnte
Der Code, den ich oben eingefügt habe, kompiliert und läuft auf Rustc 1.19. – PureW
der Code kompiliert und läuft für mich auch, aber ändert nicht das Feld, im Code im mit "1" aber in der db ist es nur 1. ist das wichtig? – dmnte