【问题标题】:Error updating miniMongo更新 miniMongo 时出错
【发布时间】:2013-03-26 06:20:18
【问题描述】:

最初,我有一个像这样的嵌套对象:
db.insert{a:1, b:2, c:{}}
我想将内容插入对象 c。所以我使用以下内容:
db.update({a:1}, {$set: {c: {一:1,二:2,三:3}}})

但是,我不断收到错误消息。如何为嵌套对象进行插入?

【问题讨论】:

  • 你得到什么错误信息?
  • 我正在使用 Meteor,我看到的都是 Meteor.Error.prototype = new Error;我还尝试了 db.update({a:1}, {$set: {'c.one': 1}}); 中的点语法另外,我想知道如果我需要 c 对象中的多个项目怎么办?创建一个数组?
  • 您是在这些命令中使用meteor mongo,还是直接在您的应用程序中使用它们?
  • @Prashant 我已经尝试过命令行和脚本执行。还没试过meteor mongo

标签: mongodb meteor


【解决方案1】:

在 Meteor 中,您需要像这样在全局范围内初始化 MongoDB 集合,

YourCollection = new Meteor.Collection("yourcollection")

请记住,这需要在全局范围内,这意味着您需要将其添加到客户端或服务器代码之外,以便两者都可以访问此集合。

那你就可以了,

YourCollection.insert({ a: 1, b: 2 })

如果字段c 不包含任何对象,则无需添加该字段。这就是 MongoDB 的强大之处。

从 0.5.8 开始,Meteor 不允许您使用任意 Mongo 选择器从客户端更新文档。要了解更多信息,请阅读Understanding “Not permitted. Untrusted code may only update documents by ID.” Meteor error。所以你也可以使用Meteor.methods

但如果您想从客户端更新,您仍然可以这样做,

YourCollection.update( { _id: "tdMrJojHyxWQ8tr6w" }, { $set : { one: 1, two: 2, three: 3 } } )

【讨论】:

    猜你喜欢
    • 2017-05-29
    • 2016-08-27
    • 2014-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多