mongoDB iOS Swift SDK изменить массив?
У меня есть объект моей модели данных:
class Tiktoks: Object {
@objc dynamic var _id: ObjectId = ObjectId.generate()
@objc dynamic var _partition: String = ""
@objc dynamic var category: String = ""
@objc dynamic var date: Date = Date()
let tiktoks = RealmSwift.List<String>()
override static func primaryKey() -> String? {
return "_id"
}
convenience init(partition: String, category: String) {
self.init()
self._partition = partition;
self.category = category;
}
}
У меня нет проблем с изменением
_partition
и
category
, но поскольку
tiktoks
список определяется
let
, это не сработает, если я вставлю его в
convenience init
функция, чтобы я мог ее изменить. Я пробовал поставить
@objc dynamic var
перед ним, но он говорит
Property cannot be marked @objc because its type cannot be represented in Objective-C
.
Есть ли способ изменить массив с помощью SDK mongoDB iOS Swift?
1 ответ
Решение
В итоге я создал функцию в MongoDB Realm.
exports = function(category, url){
var collection = context.services.get("mongodb-atlas").db("database").collection("collection")
collection.updateOne(
{ category: category },
{
$push: {
tiktoks: {
$each: [ url ],
$position: 0
}
},
$set: {
date: new Date()
}
},
)
return "done"; // not supposed to return string I think, has to return "non-double" result
};
и его можно запустить, используя:
user.functions.add_tiktok_to_category([AnyBSON(stringLiteral: tiktoks.category), AnyBSON(stringLiteral: $0!)])
Вот документация по запуску функции MongoDB в Swift: https://docs.mongodb.com/realm/ios/call-a-function/