如何通过Id node.js过滤猫鼬集合

时间:2018-08-05 11:17:26

标签: node.js mongodb express mongoose mongoose-populate

假设我有一个像这样的简单猫鼬模式

const mongoose = require('mongoose');
const Schema = mongoose.Schema;

const UserSchema = new Schema({
    name: String;
    age: String,
    created: { type: Date, default: Date.now }
})

module.exports = mongoose.model('User', UserSchema);

我可以使用User.find({})轻松找到所有用户集合。但是我只想通过其_id查找指定的集合。 例如,我有10个用户集合,并且想在此动态数组中仅根据其ID查找用户 ["5b66c0868278664f0d2f2fec","5b66c5a947eaed565b694efa"]

因此我需要使用wherematch吗?

2 个答案:

答案 0 :(得分:1)

您尝试过$in吗?

User.find({_id : {$in : ["5b66c0868278664f0d2f2fec","5b66c5a947eaed565b694efa"]})
  

$ in运算符选择文档中某个字段的值   等于指定数组中的任何值。要指定$ in表达式,   使用以下原型:

User.find({ _id: { $in: ["5b66577c2f05bf1eb07956e0" ,"5b66b1879526eb0444d047cb"] }})
    .then(users =>{
        console.log("user", users)
    })

答案 1 :(得分:0)

在postman参数中传递用户ID,然后将其分配给变量,然后将其传递给为db活动编写的函数。然后是modal.findone(id);