Javascript Meteor查询在服务器和本地环境上的作用不同

Javascript Meteor查询在服务器和本地环境上的作用不同,javascript,node.js,mongodb,meteor,Javascript,Node.js,Mongodb,Meteor,尝试调试仅出现在Meteor服务器部署上的Meteor或Mongo错误。本地一切正常,查询返回有效对象,但在服务器上返回“undefined”。服务器是meteor.com部署,也在mup/Digital Ocean服务器上 请参见此处的回购协议以再现错误: 似乎是时间戳或数字的问题,但看不出原因 最后,我认为Mongo和Node在所有环境中都是相同的版本。还有什么问题呢?如果没有更多的细节和实际的代码库,很难弄清楚这一点 您可能在dev上启用了自动发布,但在live上没有启用 对我来说,听起

尝试调试仅出现在Meteor服务器部署上的Meteor或Mongo错误。本地一切正常,查询返回有效对象,但在服务器上返回“undefined”。服务器是meteor.com部署,也在mup/Digital Ocean服务器上

请参见此处的回购协议以再现错误:

似乎是时间戳或数字的问题,但看不出原因


最后,我认为Mongo和Node在所有环境中都是相同的版本。还有什么问题呢?

如果没有更多的细节和实际的代码库,很难弄清楚这一点

您可能在dev上启用了自动发布,但在live上没有启用

对我来说,听起来像是出版物或订阅问题

在您的示例中,您是否更新和插入不同的集合,例如

CollectionOne.insert({title:title, timeStamp:timeStamp}); 

    CollectionTwo.update({title: title}, {$set: { value: 333}});
    //works fine on server and local

    CollectionThree.update({timeStamp: timeStamp}, {$set: { value: 333}});
    //fails on server, works fine locally

    CollectionFour.update({timeStamp: timeStamp, title: title}, {$set: { value: 333}});
    //fails on server, works fine locally

    CollectionFive.find({timeStamp: timeStamp})
    //returns [] on server but the data is in the collection

您应该提供一个最小的可克隆复制,因为问题可能在其他地方。我认为这可能与mongodb和nodejs驱动程序如何处理这些大数字有关,并且版本之间可能存在差异。这只是一个猜测,但您肯定应该检查本地和远程上的节点、mongodb和meteor版本。也许一个非常小的复制可以走很长的路。谢谢@mquandalle这里有一个复制错误的回购协议:谢谢你的提示。代码正在服务器端方法中运行。我看不出自动发布会有什么影响。我只与一个收藏互动。在我的代码库中,还有其他服务器端操作做得很好。就这一个讨厌的虫子。还有其他想法吗?出于兴趣,为什么要用三个不同的db查询更新同一个集合?您应该摆脱insert和update查询,使用单个upsert查询。延迟可能有问题。把你的代码换成一个单一的升级和重新部署。这只是不同查询如何响应的一个示例。这是一个回购协议,以防您复制。提前谢谢!
CollectionOne.insert({title:title, timeStamp:timeStamp}); 

    CollectionTwo.update({title: title}, {$set: { value: 333}});
    //works fine on server and local

    CollectionThree.update({timeStamp: timeStamp}, {$set: { value: 333}});
    //fails on server, works fine locally

    CollectionFour.update({timeStamp: timeStamp, title: title}, {$set: { value: 333}});
    //fails on server, works fine locally

    CollectionFive.find({timeStamp: timeStamp})
    //returns [] on server but the data is in the collection