微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

mongoDB iOS Swift SDK修改数组?

如何解决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;
    }
}

修改_partitioncategory没问题,但是由于tiktoks列表是由let定义的,因此如果将其放在{ {1}}功能使我能够对其进行修改。我尝试将convenience init放在其前面,但它显示@objc dynamic var

是否可以使用mongoDB iOS Swift SDK修改数组?

解决方法

我最终在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!)])

以下是在Swift中运行MongoDB函数的文档:https://docs.mongodb.com/realm/ios/call-a-function/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。