解析服务器在 mongodb 中创建相同的 objectid
Posted
技术标签:
【中文标题】解析服务器在 mongodb 中创建相同的 objectid【英文标题】:Parse server creates the same objectid in mongodb 【发布时间】:2017-11-11 04:58:23 【问题描述】:例如,在我的本地解析服务器中,每次我保存对象时,它都会为该特定对象创建新的唯一对象 ID。但是当我将它部署在实时服务器(ec2 或其他一些站点)中时,它会更新相同对象 ID 中的数据。 (如果我第一次保存一个对象。它会向我显示像 67XBVFA 这样的对象 ID,但是当我创建另一个对象时,它会更新同一对象 ID 67XBVFA 中的值。)。顺便说一句,我使用 mongodb 作为数据库。这是保存相同对象 ID 的简单基础,即使我更改了字段的值。
sampleobject.set("name", "xxxx");
sampleobject.set("email", "yyy@y.com");
sampleobject.save(null).then(objectstatus =>
res.success(200, objectstatus
)
为什么它会在我的本地主机中正确生成唯一的对象 ID。但是在实时实例中更新相同的对象 ID?
【问题讨论】:
【参考方案1】:const sampleobjects = Parse.Object.extend("sampleClass");
const sampleobject = new sampleobjects();
问题是我在云函数之外声明了这个。像这样。
const sampleobjects = Parse.Object.extend("sampleClass");
const sampleobject = new sampleobjects();
Parse.Cloud.define('sampleFunction', (res) =>
sampleobject.set("name", "xxxx");
sampleobject.set("email", "yyy@y.com");
sampleobject.save(null).then(objectstatus =>
res.success(200, objectstatus
)
);
所以每次检查时都会启动相同的对象 ID。
所以当我在里面这样声明的时候。
Parse.Cloud.define('sampleFunction', (res) =>
const sampleobjects = Parse.Object.extend("sampleClass");
const sampleobject = new sampleobjects();
sampleobject.set("name", "xxxx");
sampleobject.set("email", "yyy@y.com");
sampleobject.save(null).then(objectstatus =>
res.success(200, objectstatus
);
);
【讨论】:
以上是关于解析服务器在 mongodb 中创建相同的 objectid的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 java spring 注释在 MongoDB 中创建一个完全填充的引用对象
Spring Boot:如果不存在,则在启动时在 mongodb 中创建文档