2017-03-27 1 views
0

Ich habe ein MongoDB-Dokument, das ich mit Casbah für scala aktualisieren muss. Mein mongoDB Dokument sieht aus wieGeben Sie Datentypen während der Aktualisierung von MongoDB-Dokument mit Casbah an

{"_id": ObjectId("58d86364fbb1bb2224cab56a"), 
"record_interval": 
     [ 
      { 
      "record_time": ISODate("2017-01-26T09:22:15.000Z"), 
      "insert_time": ISODate("2017-03-26T12:57:08.610Z"), 
      "reading1": 50.0, 
      "reading2": 627.0 
      } 
     ], 
"record_id": "1234", 
"record_hour": ISODate("2017-01-26T09:00:00.000Z") 
} 

ich das obige Dokument mit df.write Methodik eingesetzt, so konnte ich das Schema mit Datentypen angeben, wenn ich den Datenrahmen erstellt und konnte erfolgreich das Dokument mit dem den angegebenen einfügen Datentypen.

Jetzt muss ich ein Objekt innerhalb des Record-Intervall-Array hinzufügen. Ich habe einen JSON-String, die ich als DBObject

analysiert
val DBobject: DBObject = JSON.parse(Json_String).asInstanceOf[DBObject] 

Die DBObject, die aussieht wie unten

{ 
    "vib_temp": "55.0", 
    "vib_voltage": "647.0", 
    "message_time": "2017-01-26 03:48:52.000000", 
    "etl_date_time": "2017-03-26 06:57:09.302000" 
} 

ich diesen DBObject in die record_interval Anordnung der eingangs genannten Dokument hinzugefügt, um den folgenden Code verwenden.

collection.update(MongoDBObject("_id" -> new ObjectId("58d86364fbb1bb2224cab56a")) 
    ,$push("record_interval" -> new MongoDBObject(DBobject))) 

Ich kann das gewünschte Dokument aktualisieren, aber die Datentypen der Elemente RECORD_TIME, insert_time, Lesung1 und Lesung2 sind alle Saiten. Hingegen möchte ich das Objekt mit entsprechenden Datentypen einfügen. Wie lege ich beim Aktualisieren des Dokuments die Datentypen fest? Vielen Dank im Voraus

Antwort

0

Ich habe festgestellt, dass das DBObject, das ich einfügen möchte, die Werte mit dem gewünschten Datentyp haben sollte.

Following arbeitete für mich.

val Current_datetime = new DateTime() 
val message_time = new DateTime() 

collection.update(MongoDBObject("_id" -> new ObjectId("58d86364fbb1bb2224cab56a")) 
    ,$push("record_interval" -> new MongoDBObject(
        ,("vib_temp"->55.0) 
        ,("vib_voltage"->647.0) 
        ,("message_time"->message_time) 
        ,("etl_date_time"-> Current_datetime)))) 
Verwandte Themen