我不能用对象来查询mongoose吗?
在使用mongoose查询时,我使用对象作为标准时遇到问题。
var id = { cid: 111, vid: 222, pid: 333 }; // the following doesn't work at all Category.find({id: id}, function(err, docs) { //----returns nothing. }); // while Category.find({'id.pid': id.pid, 'id.cid': id.cid,'id.vid': id.vid}, function(err, docs) { //----returns some docs. }); // does work`
这是一个问题还是一个特征?
我不认为用这种方式查询对象(嵌套对象格式)与mongoose一起工作,因为底层驱动程序(mongo-node-native)还不支持它。
如果你总是在字段id.cid
, id.pid
和id.vid
上查询,你应该对所有的字段进行复合索引 – 为每个字段创build单独的索引不会有太大的帮助,因为查询只能使用1索引在执行过程中。