解析服务器在 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 中创建文档

尝试使用 mongodb 插件在 grails 中创建 mongodb 集合

在 Windows 7 中创建 POSIX 应用程序?

MongoDB 在数组中创建数组

如何在 mongoDB 中创建复合唯一键