Mongoose的find $in会把重复的数据合并起来。
发布于 10 年前 作者 kilik52 3893 次浏览 最后一次编辑是 8 年前 来自 问答

比如我有一个id list
var id_list = [54349edca7abe93829ea4449, 54349edca7abe93829ea4449, 5428ee861cab6e635d1927d1]
其中第一个和第二个是一样的。
我使用Model.find({ _id : {$in : id_list} }, function(err, models){})
里面返回的models只有两个数据。 但是我就是想要有三个数据。 有没有简单的办法解决这个问题? 难道我自己还要再构造一遍返回值。
多谢

2 回复

自己处理吧

var _ = require(‘lodash’); var id_list = [‘54349edca7abe93829ea4449’, ‘5428ee861cab6e635d1927d1’], dup_id = ‘54349edca7abe93829ea4449’; Model.find({ _id : {$in : id_list} }, function(err, docs){ var dup_index = _.findIndex(docs, {id : dup_id}); var dup_doc = _.cloneDeep(docs[dup_index]); // more … });

回到顶部