2016-05-22 19 views
0

私はmongodbコレクションdb.postsを持っています。mongoで公開されていないデータベースの更新

投稿には、タイトル、本文、タグ、著者、画像(オブジェクトの配列)、リンク(オブジェクトの配列)のフィールドがあります。

これらの投稿を編集できる管理者は多数あります。投稿が作成されると、公開されたウェブサイトで自動的に利用可能になります。投稿が公開されている間、管理者は投稿を編集してMongoレコードに更新を保存できるようにしたいと思います。ただし、承認されるまで公開されるべきではありません。

は、これを行うための最も効率的な方法は何ですか: -

  1. は、第二のコレクションと題しdb.publishedPostsを作成し、承認に完全上書きを使用して、他の1つのコレクションからレコードをコピーします。

  2. 更新されたフィールドをdb.postsレコード内のネストされたオブジェクトに保存します。 db.posts.editedFields

  3. この種の問題を処理するための一般的な方法またはパターンがありますか?

私は完全なスタックアプリケーションとしてmeteorjsを使用しています。

+0

"効率的な"あなたの定義は何ですか?小さなデータベースサイズ?クライアントまたはサーバーのCPU使用率?どのくらいコードを書く必要がありますか?その他? –

+0

私はおそらくオプション#1で行くだろう – Luna

+0

@JesperWe minimal code – Andy59469

答えて

0

最小限のコードが必要な場合は、より多くのコレクション=より多くのコードので#1は私に間違っているようです。すでにコーディングしたフォームテンプレートを再利用し、反応性を維持したいと考えています。

私は例あなたが、その後{{#with published}}とパブリック表示テンプレートを囲み、その中のすべてのフィールド変数を維持することができ .published.foobar.editor.foobarなどのために、サブ文書内のすべてのフィールドを置きます。エディタテンプレート:{{#with editor}}と同じです。サブ文書に保存するには、保存関数を変更する必要があります。 .editor.publishedにコピーする公開ボタンを追加します。

.publishedは、それぞれ.push()に編集し、published()テンプレートヘルパーを作成して、レットの公開バージョンを取得することができます。その後、日付を追加するとバージョン管理ができます。 ...しかし、私は今最小のコードを残しています、ごめんなさい:D

関連する問題