2013-03-10 16 views

答えて

34

あなたがそれを使用することを選択した場合流星は、オブジェクトのidのために同じ方法を使用しています。

Meteor.Collection.ObjectID()がちょうどMeteor.Collection名の下のMongoDBのObjectID

その同じです。 EJSONを使って普通のJSONのオブジェクトIDをクライアント側に保持します。基本的には流星と2つのデータベース

Minimongo

があるので、これは、クライアント側のMongoDBののキャッシュの一種です。ブラウザーがロードされると、サーバー上のメインmongodbからこのデータにダウンロードされます。変更が行われると、サーバーにプッシュされます。

サーバーのMongoDB

これは

ので、サーバー上の10genから元のMongoDBあるので、流星がMeteor.CollectionでMongoDBの機能をラップして、両方で同じコードを使用できるようにする必要があり、これら二つのデータベースのクライアントとサーバー。

デフォルトでは、meteorはオブジェクトIDを使用しません。オブジェクトIDはランダムな英数字のテキストを使用します。これはあなたのhtml属性であなたのURLとIDのIDを簡単に使うことができるように行われます。

new Meteor.Collection.ObjectID()を使用すると、サーバエンドでmongodbのObjectID仕様を使用するObjectIDオブジェクトが得られます。オブジェクトIDのタイムスタンプ値は保持されませんが、実際には害を及ぼしません。

+0

私はObjectIdsで正規表現 '/^[0-9a-fA-F] + $ /'が 'false'を返していた理由を理解しようとしました...あなたはメテオで"ランダムな英数字指定された文字列が有効なIDであるかどうかをテストするロジックはありますか? –

+3

@BradMあなたは '/^[A-Za-z0-9] {17} $ /'が動作するかどうかを調べることができます。また、完全に英数字ではなく、_idに0または1が見られることはありません。私はlと1のように視覚的に混ざり合うことができる数は使われないと思う。 – Akshat

4

0.9.1以来、Meteor.Collection.ObjectIDの代わりにMongo.ObjectIDを使用することを示唆しています。基本的にどちらも同じです。 命名規則の変更点については、history.mdを確認してください。

+0

ええ、これを見ましたが、_id文字列を取得する方法を考え出すのは苦労しました。以下を使用した。 'var newID =新しいMongo.ObjectID; item._id = newID._str; ' このトピックのおかげで、http://stackoverflow.com/questions/19236685/how-do-i-use-new-meteor-collection-objectid-in-my-mongo-クエリー付きメテオ – yankeyhotel

関連する問題