我正在设置我的新RocketChat服务器。
问题是,实际上,如果CAS不是由CAS创建的,则Rocket Chat不支持CAS帐户。
我们有旧账。
我可以通过这样做添加 CAS 功能:
在Windows上使用MongoDB Compass软件输入MongoDB数据库,然后用我的键盘在服务对象中添加cas对象...
https://i.stack.imgur.com/weLuk.png
如您所见,我可以通过执行此操作来添加 CAS 功能。
我想用代码做到这一点,所以我做了这个:
1 - 输入rocketchat_mongo码头工人
2 - 使用管理员登录连接并使用火箭聊天数据库
3 - 执行此代码
db.users.update({"name":"Fabien Rousseau"},{ $set: {"services" : { "cas" : { "external_id" : "fabien.rousseau", "version" : 2 }}}})
该命令是可以的,因为 CAS 对象已添加到服务中,但是,它会删除另一个对象,如密码并恢复...
我只想添加 CAS 对象而不删除其他对象...
我的预期结果在第一张图片中:CAS帐户。
实际上在命令之后我有这个:
https://i.stack.imgur.com/hkJoe.png
请帮助我调整我的命令以避免删除我的服务对象中的其他对象。
您将整个services
(包括所有其他字段)传递给$set
,因此,您将重置嵌套在services
中的所有字段。尝试使用点表示法仅传递要更新/添加到文档中的数据。
$set文档说
若要在嵌入文档或数组中指定字段,请使用点表示法。
db.users.update({"name":"Fabien Rousseau"},{ $set: { "services.cas" : { "external_id" : "fabien.rousseau", "version" : 2 }}})