我需要帮助将数据添加到地图savedSearches。
我需要使用.set()(因为用户savedSearches可能不存在)。
我当前的尝试如下所示:
database.collection('users').doc(uid).set({savedSearches: data}, {merge: true})
Run Code Online (Sandbox Code Playgroud)
但这不会添加savedSearches具有唯一 ID 的对象。
当我使用 Firebase 实时数据库时,我只是这样做:
database.ref('users/' + uid + '/savedSearches').push(data)
Run Code Online (Sandbox Code Playgroud)
这非常有效。我怎样才能在 Firestore 中做到这一点?
我的网站使用NextJS构建(并使用 Vercel 托管),在 NodeJS API 中使用 Mongoose 连接到我的 MongoDB 数据库。
我只有大约 1% 的用户遇到这个奇怪的错误:
MongooseError: Cannot call `hotels.aggregate()` before initial connection is complete if `bufferCommands = false`. Make sure you `await mongoose.connect()` if you have `bufferCommands = false`.
at NativeCollection.<computed> [as aggregate] (/var/task/node_modules/mongoose/lib/drivers/node-mongodb-native/collection.js:193:15)
at /var/task/node_modules/mongoose/lib/aggregate.js:998:18
at /var/task/node_modules/kareem/index.js:23:7
at processTicksAndRejections (internal/process/task_queues.js:77:11)
Run Code Online (Sandbox Code Playgroud)
(hotels是正在显示的集合,我.aggregate()在 API 中调用它的函数)
我无法可靠地重现该错误,但我也遇到过这种情况。
我按照 NextJS 推荐的方式从他们的示例连接到 MonogoDB :
import mongoose from 'mongoose'
const MONGODB_URI = process.env.MONGODB_URI
if (!MONGODB_URI) {
throw new Error( …Run Code Online (Sandbox Code Playgroud)