2017-10-04 4 views
0

私はMeteorを初めて使っていませんが、他のプロジェクトで作業しているので数週間は離れています。Collection.findOne({_ id: "stringidsdfdsfdsfds"})は定義されていません返されます

私は現在、Reactを使ってMeteorプロジェクトを進めています。

私はこれCollection.find({}).fetch()を行うと、それは、これを返します。

[ 
    { 
     "_id": { "_str": "59d3b91d80f4f5eeb0162634" }, 
     "title": "My first Post", 
     "content": "This is the body of the pst" 
    } 
] 

だけ奇妙なことが_idフィールドです。

しかし、Collection.findOne({_id: "59d3b91d80f4f5eeb0162634" })を実行すると、undefinedが返されます。

クエリパラメータとして_id文字列を使用して.findOne()を行うにはどうすればよいですか?

答えて

2

_idの値はJSONオブジェクトではなく、MongoのObjectIDタイプの文字列表現なので、.findOne()が見つからないのはそのためです。

あなたはこのようにそれを検索する必要があります。デフォルトでは

const _id = new Meteor.Collection.ObjectID('59d3b91d80f4f5eeb0162634'); 
Collection.findOne({ _id }); // same as { _id: _id } 

、流星uses STRING method of _id generationので、この特定のドキュメントがコレクションに別の方法を挿入されているようです。

+0

こんにちは、ありがとう。私は実際に 'meteor mongo'コンソールから挿入しました。 – Kenshinman

+0

@Kenshinmanこのようなことで 'meteor shell'コンソールを使うことをお勧めします。 – Styx

関連する問題