我有一个具有文档ID的数组。
var ids = [ '5b3c7db4c079dc17dc75fc26', '5b3c7db4c079dc17dc75fc28' ]
我正在尝试使用数组中的ID从Machines集合中获取文档。
Machines.find({ _id : { $in : ids } }).fetch();
这将返回[]
答案 0 :(得分:1)
您的
var ids = [ '5b3c7db4c079dc17dc75fc26', '5b3c7db4c079dc17dc75fc28' ]
看起来像是十六进制字符串或本机MongoDB BSON类型的ObjectID。
试试流星的蒙哥吧
import { Mongo } from 'meteor/mongo';
const ids = [
new Mongo.ObjectID('5b3c7db4c079dc17dc75fc26'),
new Mongo.ObjectID('5b3c7db4c079dc17dc75fc28'),
]
Machines.find({ _id : { $in : ids } }).fetch();
为获得更好的语法,请使用.map()
获取Mongo.ObjectID
类型ID的新数组。
import { Mongo } from 'meteor/mongo';
const ids = ['5b3c7db4c079dc17dc75fc26', '5b3c7db4c079dc17dc75fc28', ...];
const mongoIds = ids.map(id => new Mongo.ObjectID(id));
Machines.find({ _id : { $in : mongoIds } }).fetch();
// if ids were ObjectIDs instead of literal strings
const objectIdToMongoIds = ids.map(id => new Mongo.ObjectID(id.toString()));
Machines.find({ _id: { $in: objectIdToMongoIds } });
答案 1 :(得分:0)
尝试一下:
createModel = createModel.groupby(cols).size().reset_index(name='count')
因为Mongodb将ID存储为var ids = [ ObjectId("5b3c7db4c079dc17dc75fc26"), ObjectId("5b3c7db4c079dc17dc75fc28") ]
答案 2 :(得分:0)
您也可以尝试Machine.findById(req.params.id, () => {}