私は数年前から 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]});