问这个问题我觉得很笨,因为我已经使用 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]});