jsonmongodbkotlinmongodb-realm

RealmList<String> as a JSON Schema - Mongo DB Realm


I have a simple model class from which I need to generate the schema on Mongo DB Atlas. But I'm having troubles when it comes to defining RealmList<String> inside a JSON schema. If I insert "array" as a bsonType, I get an error. What should I write instead?

Model class:

class Note : RealmObject {
    @PrimaryKey
    var _id: ObjectId = ObjectId.create()
    var title: String = ""
    var description: String = ""
    var images: RealmList<String> = realmListOf()
    var date: RealmInstant = RealmInstant.from(System.currentTimeMillis(),0)
}

Current Schema:

{
  "bsonType": "object",
  "properties": {
    "_id": {
      "bsonType": "objectId"
    },
    "title": {
      "bsonType": "string"
    },
    "description": {
      "bsonType": "string"
    },
    "images": {
      "bsonType": "array"
    },
    "date": {
      "bsonType": "date"
    }
  },
  "required": [
    "_id",
    "title",
    "description",
    "images",
    "date"
  ],
  "title": "Note"
}

Solution

  • I am not sure which mode you're using but if you're in development mode, when you add an object in the SDK, the server will automatically generate a matching object, as long as the changes are additive, like adding a new object or property

    In the queston, the 'images' bson definition looks incomplete

    "images": {
       "bsonType": "array"
    },
    

    While it is an array, it's an array of strings so I believe it should look more like this

    "images": {
       "bsonType": "array",
       "items": {
          "bsonType": "string"
       }
    }
    

    Where the type of items is defined as a string