もともと、次のようなネストされたオブジェクトがあります:
db.insert{a:1, b:2, c:{}}
で、オブジェクト c にコンテンツを挿入したいと思います。したがって、次を使用します:
db.update({a:1}, {$set: {c: {one: 1, two: 2, three: 3}}})
ただし、エラーメッセージが表示され続けます。ネストされたオブジェクトを挿入するにはどうすればよいですか?
Meteor では、次のようにグローバル スコープで MongoDB コレクションを初期化する必要があります。
YourCollection = new Meteor.Collection("yourcollection")
これはグローバル スコープ内にある必要があることに注意してください。つまり、クライアント コードまたはサーバー コードからこれを追加して、両方がこのコレクションにアクセスできるようにする必要があります。
それからあなたはできる、
YourCollection.insert({ a: 1, b: 2 })
c
オブジェクトが含まれていない場合は、フィールドを追加する必要はありません。これが MongoDB の威力です。
0.5.8 の時点で、Meteor では、任意の Mongo セレクターを使用してクライアントからドキュメントを更新することはできません。これについて詳しく知るには、「許可されていないことを理解する」をお読みください。信頼されていないコードは、ID によってのみドキュメントを更新する可能性があります。」メテオエラー。したがって、代わりに を使用できますMeteor.methods
。
ただし、クライアントから更新したい場合は、引き続き行うことができます。
YourCollection.update( { _id: "tdMrJojHyxWQ8tr6w" }, { $set : { one: 1, two: 2, three: 3 } } )