【发布时间】:2018-03-25 20:47:29
【问题描述】:
我已让用户电子邮件成为我整个用户数据库的唯一键:
var usersSchema = new Schema({
_id: String, // Users Unique Email address
name: String, // Users name
phone: String, // Users phone number
country: String, // Country
type: String, // tenant/agent/manager/admin
username: String, // Username for login
password: String, // Password string
trello: Object, // Trello auth settings
settings: Object, // Settings for manager and other things
createDate: Number, // Date user was created
contactDate: Number, // Date user was last contacted
activityDate: Number // Date of last activity on this user (update/log/etc)
});
如果用户更改电子邮件地址怎么办?
是我删除记录并重新创建记录的唯一方法吗? 还是有更聪明的方法?
并且 users._id (email) 在其他 16 个表中有关系。 以预订表为例
var bookingSchema = new Schema({
_id: String, // Unique booking ID
user: String, // User ID --> users._id
property: String, // Property ID --> property._id
checkin: Number, // Check in Date
checkout: Number // Check out Date
});
一个用户可以有很多预订
我要做的是找到与电子邮件匹配的所有记录,然后为(i=1 ; i<booking.length ; i++) 执行一个操作,然后更新每条记录的电子邮件
有没有更聪明的方法来更新所有匹配的电子邮件,只使用一个 mongo 调用?
(原因是关系这么多,所以我的循环看起来有点像一种非常原始的方法)
【问题讨论】:
标签: mongodb