我使用托管在 Atlas 上的 MongoDB 数据库构建了一个 Web 工具,通过Stitch连接。据我了解, Stitch 现在已经贬值并变成了MongoDB Realm。所以我尝试使用新的 Realm 应用程序而不是 Stitch 来更新我的网站。虽然它确实有效,但由于某种原因,匿名登录现在要慢得多。我使用 MongoDB 文档中建议的代码进行了一些快速测试:
let t0 = performance.now()
app.logIn(Realm.Credentials.anonymous()).then(() => {
let t1 = performance.now()
db.collection('test').find({
category: "test"
}, {limit: 10})
console.log("Login took " + (t1 - t0) + " milliseconds.")
})
登录让我难以置信1200 ms
。
let t0 = performance.now()
app.auth.loginWithCredential(new stitch.AnonymousCredential()).then(() => {
let t1 = performance.now()
db.collection('test').find({
category: 'test'
}, {limit: 10}).asArray()
console.log("Login took " + (t1 - t0) + " milliseconds.")
})
使用旧的 Stitch App,通常需要20 ms
登录。
任何想法这里发生了什么或如何解决这个问题?我确实知道有可能按照他们的文档中的描述首先对用户进行身份验证,但是我尝试过,它同样很慢。
是否真的需要更新到新的 Realm 应用程序,例如旧的 Stitch 实现在不久的将来会停止工作吗?任何有关这方面的信息将不胜感激;)
更新:我做了更多调查,似乎 Realm 速度较慢的原因在于使用登录会logIn(Realm.Credentials.anonymous()).then(() => ...
导致两个 Post 请求,但使用auth.loginWithCredential(new stitch.AnonymousCredential()).then(() => ...
会在一个请求中完成身份验证和内容下载。使用 Realm,我两次获得 500-700 毫秒的 TTFB 等待时间,而 Stitch 只发生一次。