首页 > 解决方案 > 测试以查看输入的值是否存在于数组 Mongodb 中

问题描述

所以我有一个具有这种格式的小型测试集合......

样本数据

我创建了一个简单的查询,它返回一个包含所有 id 的数组。

All_Ids = db.Test_Collection.find({}, {_id:1}).map(function(item){ return item._id; })
[ 98800754, 15301328, 76812898 ]

我想接受输入的 id 并检查输入的值是否存在于数组中..

这是我最初的尝试..

> query_Figure = 98800754
98800754
> db.Test_Collection.find({query_Figure: {$in: All_Ids}})

我尝试使用 $in 运算符来查找该特定值.. 将数组和特定 id 作为变量进行搜索,但没有运气,因为查询没有返回任何内容,当我搜索的值明显在数组中时

如您所知,我是新手,希望能在改进查询方面提供一些帮助!

标签: arraysmongodbmongodb-query

解决方案


$in运算符返回数组中存在指定字段值的文档。

在您的情况下,由于query_Figure不是任何文档中的字段,因此您的查询不会返回匹配的文档。

如果您只想检查输入 id 是否存在于All_Ids数组中,那么您不需要查询。只需使用Array.prototype.includes()

const exists = All_Ids.includes(query_Figure);

推荐阅读