0

私は数年前から Mongo を使用しており、これは簡単で単純なクエリであるべきだと思われるので、これを尋ねるのはおかしいと思います。しかし、私の一生の間、レコードの配列を照会することはできないようです。基本的なコードは次のとおりです。

そのため、次のようなドキュメント ID のコレクションを作成しています。

\\first, I create a collection of document ids  
Rooms.update(Session.get('selected_room'), {$addToSet: {reservations: this._id}})

\\then, I pull the array of ids like so
var reservationsList = Rooms.findOne(selectedRoomId).reservations;

\\ when I inspect, everything is fine and it produces an array of document ids 
console.log(JSON.stringify(reservationList)

["Rym8yc4GbNmnNcsmx","msLcBMRQxBdjgLddE","XG2z4qQRD5j4ERBca"]

そのため、その時点まではすべて正常に機能しています。ここで私は問題に遭遇し始めます:

//doesn't work
var cursor = Schedule.find({'_id': {$in: reservationsList }});

//doesn't work
var cursor = Schedule.find({_id: {$in: reservationsList }});

//doesn't work
var cursor = Schedule.find({_id: reservationsList });

//doesn't work
var cursor = Schedule.find(reservationsList);

これらはすべて TypeError{} になります。

このクエリの実行方法に関するアイデアはありますか? 私がやりたいことは、_ids の配列を find() 関数に渡し、ドキュメントのカーソルを取得することだけです。

編集: 以下機能するため、MongoId ラッパーなどの問題ではないことがわかっています。

record = Schedule.findOne({'_id': reservationsList[0]});
4

1 に答える 1

1

ああ。質問を書き出すことで、自分の考えを十分に整理できるので、質問を書き終えて投稿するとすぐに理解できました。私は .fetch() を次のように忘れました:

Schedule.find({_id: {$in: reservationsList }}).fetch();
于 2013-05-24T08:09:50.520 に答える