Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如果数组字段包含值,如何查找对象_Node.js_Mongodb_Mongoose - Fatal编程技术网

Node.js 如果数组字段包含值,如何查找对象

Node.js 如果数组字段包含值,如何查找对象,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,正如您在标题中看到的,我想查询项的数组类型字段是否包含Mongoose指定的值 我发现mongodb/Mongoose提供了“$in”操作符来查找数组对象的值 但“$in”运算符仅在相反的情况下有用(如果值的字段在数组中,则用于查找值) 下面是我为模型编写的一些代码 // scheme/item.js var mongoose = require('mongoose'); var model = new mongoose.Schema({ item_id : Number,

正如您在标题中看到的,我想查询项的数组类型字段是否包含Mongoose指定的值


我发现mongodb/Mongoose提供了“$in”操作符来查找数组对象的值

但“$in”运算符仅在相反的情况下有用(如果值的字段在数组中,则用于查找值)


下面是我为模型编写的一些代码

// scheme/item.js
var mongoose = require('mongoose');
var model = new mongoose.Schema({

    item_id : Number,

    name : String,
    description : String,

    assigned : [ Number ]
});

module.exports = mongoose.model('item', model);

我想做的是,如果设置了用户id,则查找item.assigned包含用户id的所有项目。

要获取所有已分配
且不为空的记录,您需要使用以下子句:


我想你可以在
中使用
$,请阅读链接:

和@chridam的评论,我找到了'Item.find({assigned:user_id})'只要做我想做的。

很抱歉,我想找到包含值的数组字段的记录,但只是找到所有没有空字段的记录。这意味着该项的字段不应为null且“包含值”。是的,很抱歉,我不理解这个问题。在您的评论之后,我编辑了一些用于模型和解释的数据。实际上,Item.id与这个问题无关(因此我编辑为“Item_id”)。事实上,当用户id带有一些对象(例如req.session.user_id)时,我想使用这个值进行查询。很抱歉输入错误:(您是否尝试了
项。查找({assigned:userId})
?@chridam我想您给了我一个正确的答案..真是个救命恩人啊!!
item.find({assigned: {$ne: null}});
item.find({'$and' : [{item_id : {$eq: req.session.user_id}}, {'assigned ' : {'$in' : [req.session.user_id]}}]})