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 回答