小编Dio*_*nes的帖子

MongoDB嵌套数组交集查询

并提前感谢您的帮助.我有一个mongoDB数据库结构如下:

{
  '_id' : objectID(...),

  'userID' : id,

  'movies' : [{

       'movieID' : movieID,

       'rating' : rating
   }]
 }
Run Code Online (Sandbox Code Playgroud)

我的问题是:

我想搜索具有'userID'的特定用户:3,例如,get all is movies,然后我想让所有其他用户拥有至少15个或更多具有相同'movieID'的电影,然后对于那个组我想只选择那些有相似的15部电影的用户,并且我选择一个额外的'movieID'.

我已经尝试过聚合,但是失败了,如果我做单个查询,比如从用户那里获取所有用户的电影,那么骑自行车每个用户电影并进行比较需要花费大量时间.

任何想法?

谢谢

mongodb aggregation-framework

7
推荐指数
1
解决办法
2590
查看次数

NodeJS,合并两个pdf

Hy,我有两个.pdf,我想用节点合并它们,我已经尝试过使用Ghostscript,并且从节点执行,但是GhostScript有点儿错误,有时它会给出分段错误级别11,我已经研究过它了常见的bug.

Processing pages 1 through 2.
Page 1
Page 2
Segmentation fault: 11
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,是否有一个模块可以为我合并两个PDF,已经尝试过PDFMake和PDFKit,但我似乎无法找到合并文件的任何选项.

提前致谢

pdf merge node.js node-pdfkit

7
推荐指数
1
解决办法
3579
查看次数

Facebook SDK与文本共享图像

在使用Facebook SDK之前,我们曾经通过UIActivityViewController共享,因为Facebook不允许我们预先填写用户共享信息,我们的解决方案是使用信息共享图像的用户描述UIPasteboard.general.string.所以应用程序将切换到信使,用户可以粘贴.在我们开始使用Facebook SDK之前,这很好用.

现在似乎UIPasteboard.general.string在打开信使时重置,我们不再能将图像描述复制到剪贴板.

这就是我与信使分享的方式:

let sharePhoto = FBSDKSharePhoto()
sharePhoto.image = image

let content = FBSDKSharePhotoContent()
content.photos = [sharePhoto]

FBSDKMessageDialog.show(with: content, delegate: delegate)
Run Code Online (Sandbox Code Playgroud)

ios facebook-sdk-4.0 swift

6
推荐指数
1
解决办法
3224
查看次数

领域列表中的性能问题

在Realm List上进行操作时,我遇到了一些内存性能问题.我有两个类似于这个的对象:

final class Contact: Object {
    let phones = List<Phone>()
    let emails = List<Email>()
}
Run Code Online (Sandbox Code Playgroud)

现在我试图找到可能有重复电子邮件或电话的两个相同类型的对象(例如,至少一个共同的元素)之间可能的相似性.为了做到这一点,我正在使用Set操作.

func possibleDuplicateOf(contact: Contact) {
    return !Set(emails).isDisjoint(with: Set(contact.emails)) || !Set(phones).isDisjoint(with: Set(contact.phones))
}
Run Code Online (Sandbox Code Playgroud)

这是Contact对象内部的一个函数.我知道它在将Realm List转换为Set或Array时会有性能损失,当我有大量的Contacts(10k或更多)时,我会感觉很重,内存消耗会跳到1GB以上.

所以我尝试用这个替换上面的函数:

func possibleDuplicateOf(contact: Contact) {
    let emailsInCommon = emails.contains(where: contact.emails.contains)
    let phonesInCommon = phones.contains(where: contact.phones.contains)

    return emailsInCommon || phonesInCommon
}
Run Code Online (Sandbox Code Playgroud)

这与使用集合具有相同的性能.

电子邮件和电话上的isEqual方法是一个简单的字符串比较:

extension Email {
    static func ==(lhs: Email, rhs: Email) -> Bool {
        return (lhs.email == rhs.email)
    }

    override func isEqual(_ object: Any?) -> Bool …
Run Code Online (Sandbox Code Playgroud)

set realm swift realm-list

5
推荐指数
0
解决办法
171
查看次数