jjzjj

mongodb - 迁移到 meteor 1.7.0.4 : MongoDB : "updating the path ... would create a conflict at ..."

coder 2023-10-31 原文

我正在使用 meteor,我正在尝试从 meteor 1.6 升级到 1.7 但是我遇到了无法在我的测试中获取有关信息的错误:

tests.jpg

我得到了很多这样的东西(有些可能是重复的、未使用的或过时的):

Error: Updating the path 'relationChangeRate' would create a conflict at 'relationChangeRate'
at Function.MongoError.create (C:\Users\fquesselaire\AppData\Local\.meteor\packages\npm-mongo\3.0.11\npm\node_modules\mongodb-core\lib\error.js:45:10)
at toError (C:\Users\fquesselaire\AppData\Local\.meteor\packages\npm-mongo\3.0.11\npm\node_modules\mongodb\lib\utils.js:149:22)
at C:\Users\fquesselaire\AppData\Local\.meteor\packages\npm-mongo\3.0.11\npm\node_modules\mongodb\lib\collection.js:1029:39
at C:\Users\fquesselaire\AppData\Local\.meteor\packages\npm-mongo\3.0.11\npm\node_modules\mongodb-core\lib\connection\pool.js:544:18
at _combinedTickCallback (internal/process/next_tick.js:131:7)
at process._tickDomainCallback (internal/process/next_tick.js:218:9)

1.6.* 中没有出现

我尝试将我的 mongodb 升级到 3.6.6,但没有效果。 我也无法在测试中获取整个堆栈以查看究竟执行了什么。

我的 .meteor/versions :

255kb:meteor-status@1.5.0
accounts-base@1.4.2
accounts-password@1.5.1
akasha:fs-extra@0.26.3
alanning:roles@1.2.16
aldeed:autoform@6.3.0
aldeed:autoform-bs-button-group-input@2.0.0
aldeed:autoform-select2@3.0.1
aldeed:collection2-core@2.1.2
aldeed:template-extension@4.1.0
allow-deny@1.1.0
arillo:flow-router-helpers@0.5.2
autoupdate@1.4.1
babel-compiler@7.1.1
babel-runtime@1.2.4
base64@1.0.11
binary-heap@1.0.10
blaze@2.3.2
blaze-html-templates@1.1.2
blaze-tools@1.0.10
boilerplate-generator@1.5.0
caching-compiler@1.1.12
caching-html-compiler@1.1.3
callback-hook@1.1.0
check@1.3.1
coffeescript@1.0.17
cultofcoders:mocha@2.4.6
dburles:collection-helpers@1.1.0
dburles:factory@1.1.0
ddp@1.4.0
ddp-client@2.3.3
ddp-common@1.4.0
ddp-rate-limiter@1.0.7
ddp-server@2.2.0
deps@1.0.12
diff-sequence@1.1.0
dynamic-import@0.4.1
ecmascript@0.11.1
ecmascript-runtime@0.7.0
ecmascript-runtime-client@0.7.2
ecmascript-runtime-server@0.7.1
ejson@1.1.0
email@1.2.3
es5-shim@4.8.0
fourseven:scss@4.9.0
geojson-utils@1.0.10
hot-code-push@1.0.4
html-tools@1.0.11
htmljs@1.0.11
http@1.4.1
id-map@1.1.0
idmontie:migrations@1.0.3
jquery@1.11.11
kadira:blaze-layout@2.3.0
kadira:flow-router@2.12.1
lai:collection-extensions@0.2.1_1
launch-screen@1.1.1
livedata@1.0.18
lmieulet:meteor-coverage@1.1.4
localstorage@1.2.0
logging@1.1.20
matb33:collection-hooks@0.8.4
meteor@1.9.2
meteor-base@1.4.0
meteorhacks:picker@1.0.3
meteortesting:browser-tests@1.0.0
meteortesting:mocha@1.0.0
minifier-css@1.3.1
minifier-js@2.3.5
minimongo@1.4.4
mobile-experience@1.0.5
mobile-status-bar@1.0.14
modern-browsers@0.1.2
modules@0.12.2
modules-runtime@0.10.2
momentjs:moment@2.22.2
mongo@1.5.1
mongo-dev-server@1.1.0
mongo-id@1.0.7
mouse0270:bootstrap-notify@3.1.3
natestrauser:select2@4.0.3
npm-bcrypt@0.9.3
npm-mongo@3.0.11
observe-sequence@1.0.16
ordered-dict@1.1.0
ostrio:cookies@2.3.0
ostrio:files@1.10.1
practicalmeteor:chai@2.1.0_1
practicalmeteor:loglevel@1.2.0_2
practicalmeteor:mocha-core@1.0.1
practicalmeteor:sinon@1.14.1_2
promise@0.11.1
raix:eventemitter@0.1.3
random@1.1.0
rate-limit@1.0.9
reactive-dict@1.2.1
reactive-var@1.0.11
reload@1.2.0
retry@1.1.0
rocketchat:streamer@0.5.0
routepolicy@1.0.13
service-configuration@1.0.11
session@1.1.8
sewdn:collection-behaviours@0.3.0
sha@1.0.9
shell-server@0.3.1
socket-stream-client@0.2.2
softwarerero:accounts-t9n@1.3.11
spacebars@1.0.15
spacebars-compiler@1.1.3
srp@1.0.12
standard-minifier-css@1.4.1
standard-minifier-js@2.3.4
templating@1.3.2
templating-compiler@1.3.3
templating-runtime@1.3.2
templating-tools@1.1.2
tmeasday:check-npm-versions@0.3.2
tmeasday:test-reporter-helpers@0.2.1
tracker@1.2.0
ui@1.0.13
underscore@1.0.10
url@1.2.0
useraccounts:bootstrap@1.14.2
useraccounts:core@1.14.2
useraccounts:flow-routing@1.14.2
webapp@1.6.2
webapp-hashing@1.0.9
zimme:active-route@2.3.2

我的节点包:

  "dependencies": {
    "@babel/runtime": "^7.0.0-beta.54",
    "@mdi/font": "^2.5.94",
    "babel-runtime": "^6.26.0",
    "bcrypt": "^3.0.0",
    "bootstrap": "^3.3.7",
    "bootstrap-material-design": "^0.5.10",
    "bootstrap-slider": "^10.0.2",
    "bootstrap-toggle": "^2.2.2",
    "clone": "^2.1.1",
    "csv-parse": "^2.5.0",
    "d3": "^5.5.0",
    "file-saver": "^1.3.8",
    "fs-extra": "^3.0.1",
    "gm": "^1.23.0",
    "jquery": "^2.2.4",
    "jsondiffpatch": "^0.3.11",
    "lodash": "^4.17.10",
    "meteor-node-stubs": "^0.4.1",
    "mkdirp": "^0.5.1",
    "object-path": "^0.11.4",
    "popper.js": "^1.14.3",
    "select2": "^4.0.4",
    "select2-bootstrap-theme": "^0.1.0-beta.10",
    "simpl-schema": "^1.5.3",
    "uuid": "^3.3.2",
    "xmldoc": "^1.1.0",
    "zip-local": "^0.3.4"
  },
  "devDependencies": {
    "chromedriver": "^2.40.0",
    "gulp": "^3.9.1",
    "selenium-webdriver": "^3.6.0"
  }

如果您对发生的事情有任何线索? 我可以提供有关应用程序中发生的情况的更多信息,但现在简单解释此错误的含义就已经很棒了。正如我所说,此错误仅附加在 1.7 中。

编辑:忘了说我的测试在工作代码上抛出这个。 功能运行良好,但测试运行不佳。

编辑²:

此方法是更新集合项目设置的方法。

_duplicateProjectSettings(newSession) {
  const settings = this.session.projectSettings();
  delete settings._id;
  settings.sessionId = newSession._id;
  const newSettings = newSession.projectSettings();
  ProjectSettings.update(newSettings._id, { $set: settings });
}

relationChangeRate 是 projectSettings 集合的一个简单模式字段(我使用 collection2-core):

relationChangeRate: {
  type: Number,
  allowedValues: _.values(RelationRates),
  defaultValue: 0.0
}

projectSettings 扩展了 mongo.collection,但在这种情况下,更新方法没有被覆盖。 代码接缝对我来说是正确的,因为 _id 在更新请求之前被很好地删除并设置为新对象。但也许我错了?

编辑³:

ProjectSettings 是一个 collection-helper :

代码如下:

Sessions.helpers({
[...]
  projectSettings() {
      const conds = { sessionId: this._id };
      return ProjectSettings.findOne(conds);
  },
[...]

集合助手基本上是在该集合中的每个文档上添加一个方法。这意味着任何 session 对象都会有这个方法。在集合助手中,“this”指的是当前集合对象。

这样应该不错吧?

_duplicateProjectSettings 可以这样写:

_duplicateProjectSettings(newSession) {
  // const settings = this.session.projectSettings();
  const settings = ProjectSettings.findOne({ sessionId: this.session._id });
  delete settings._id;
  settings.sessionId = newSession._id;
  // const newSettings = newSession.projectSettings();
  const newSettings = ProjectSettings.findOne({ sessionId: newSession._id });
  ProjectSettings.update(newSettings._id, { $set: settings });
}

(我也试过了,结果一样)

最佳答案

从 shell 运行它对我有用……不是最好的解决方案。我在尝试使用 accounts-password 包登录时遇到了问题。

$ meteor mongo
meteor:PRIMARY> db.adminCommand( { setFeatureCompatibilityVersion: "3.4" } )

关于mongodb - 迁移到 meteor 1.7.0.4 : MongoDB : "updating the path ... would create a conflict at ...",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51827085/

有关mongodb - 迁移到 meteor 1.7.0.4 : MongoDB : "updating the path ... would create a conflict at ..."的更多相关文章

  1. ruby-on-rails - rails : "missing partial" when calling 'render' in RSpec test - 2

    我正在尝试测试是否存在表单。我是Rails新手。我的new.html.erb_spec.rb文件的内容是:require'spec_helper'describe"messages/new.html.erb"doit"shouldrendertheform"dorender'/messages/new.html.erb'reponse.shouldhave_form_putting_to(@message)with_submit_buttonendendView本身,new.html.erb,有代码:当我运行rspec时,它失败了:1)messages/new.html.erbshou

  2. ruby-on-rails - 由于 "wkhtmltopdf",PDFKIT 显然无法正常工作 - 2

    我在从html页面生成PDF时遇到问题。我正在使用PDFkit。在安装它的过程中,我注意到我需要wkhtmltopdf。所以我也安装了它。我做了PDFkit的文档所说的一切......现在我在尝试加载PDF时遇到了这个错误。这里是错误:commandfailed:"/usr/local/bin/wkhtmltopdf""--margin-right""0.75in""--page-size""Letter""--margin-top""0.75in""--margin-bottom""0.75in""--encoding""UTF-8""--margin-left""0.75in""-

  3. ruby - 检查 "command"的输出应该包含 NilClass 的意外崩溃 - 2

    为了将Cucumber用于命令行脚本,我按照提供的说明安装了arubagem。它在我的Gemfile中,我可以验证是否安装了正确的版本并且我已经包含了require'aruba/cucumber'在'features/env.rb'中为了确保它能正常工作,我写了以下场景:@announceScenario:Testingcucumber/arubaGivenablankslateThentheoutputfrom"ls-la"shouldcontain"drw"假设事情应该失败。它确实失败了,但失败的原因是错误的:@announceScenario:Testingcucumber/ar

  4. ruby-on-rails - 迷你测试错误 : "NameError: uninitialized constant" - 2

    我遵循MichaelHartl的“RubyonRails教程:学习Web开发”,并创建了检查用户名和电子邮件长度有效性的测试(名称最多50个字符,电子邮件最多255个字符)。test/helpers/application_helper_test.rb的内容是:require'test_helper'classApplicationHelperTest在运行bundleexecraketest时,所有测试都通过了,但我看到以下消息在最后被标记为错误:ERROR["test_full_title_helper",ApplicationHelperTest,1.820016791]test

  5. ruby-on-rails - 相关表上的范围为 "WHERE ... LIKE" - 2

    我正在尝试从Postgresql表(table1)中获取数据,该表由另一个相关表(property)的字段(table2)过滤。在纯SQL中,我会这样编写查询:SELECT*FROMtable1JOINtable2USING(table2_id)WHEREtable2.propertyLIKE'query%'这工作正常:scope:my_scope,->(query){includes(:table2).where("table2.property":query)}但我真正需要的是使用LIKE运算符进行过滤,而不是严格相等。然而,这是行不通的:scope:my_scope,->(que

  6. 使用 ACL 调用 upload_file 时出现 Ruby S3 "Access Denied"错误 - 2

    我正在尝试编写一个将文件上传到AWS并公开该文件的Ruby脚本。我做了以下事情:s3=Aws::S3::Resource.new(credentials:Aws::Credentials.new(KEY,SECRET),region:'us-west-2')obj=s3.bucket('stg-db').object('key')obj.upload_file(filename)这似乎工作正常,除了该文件不是公开可用的,而且我无法获得它的公共(public)URL。但是当我登录到S3时,我可以正常查看我的文件。为了使其公开可用,我将最后一行更改为obj.upload_file(file

  7. ruby - 安装 Ruby 时遇到问题(无法下载资源 "readline--patch") - 2

    当我尝试安装Ruby时遇到此错误。我试过查看this和this但无济于事➜~brewinstallrubyWarning:YouareusingOSX10.12.Wedonotprovidesupportforthispre-releaseversion.Youmayencounterbuildfailuresorotherbreakages.Pleasecreatepull-requestsinsteadoffilingissues.==>Installingdependenciesforruby:readline,libyaml,makedepend==>Installingrub

  8. ruby - RVM "ERROR: Unable to checkout branch ."单用户 - 2

    我在新的Debian6VirtualBoxVM上安装RVM时遇到问题。我已经安装了所有需要的包并使用下载了安装脚本(curl-shttps://rvm.beginrescueend.com/install/rvm)>rvm,但以单个用户身份运行时bashrvm我收到以下错误消息:ERROR:Unabletocheckoutbranch.安装在这里停止,并且(据我所知)没有安装RVM的任何文件。如果我以root身份运行脚本(对于多用户安装),我会收到另一条消息:Successfullycheckedoutbranch''安装程序继续并指示成功,但未添加.rvm目录,甚至在修改我的.bas

  9. ruby - 如何关闭 ruby​​ gem "Spreadsheet?"中的文件 - 2

    下面的代码在我第一次运行它时就可以正常工作:require'rubygems'require'spreadsheet'book=Spreadsheet.open'/Users/me/myruby/Mywks.xls'sheet=book.worksheet0row=sheet.row(1)putsrow[1]book.write'/Users/me/myruby/Mywks.xls'当我再次运行它时,我会收到更多消息,例如:/Library/Ruby/Gems/1.8/gems/spreadsheet-0.6.5.9/lib/spreadsheet/excel/reader.rb:11

  10. ruby - Ruby 语法糖有 "rules"吗? - 2

    我正在学习Ruby的基础知识(刚刚开始),我遇到了Hash.[]method.它被引入a=["foo",1,"bar",2]=>["foo",1,"bar",2]Hash[*a]=>{"foo"=>1,"bar"=>2}稍加思索,我发现Hash[*a]等同于Hash.[](*a)或Hash.[]*一个。我的问题是为什么会这样。是什么让您将*a放在方括号内,是否有某种规则可以在何时何地使用“it”?编辑:我的措辞似乎造成了一些困惑。我不是在问数组扩展。我明白了。我的问题基本上是:如果[]是方法名称,为什么可以将参数放在括号内?这看起来几乎——但不完全是——就像说如果你有一个方法Foo.d

随机推荐