MongoDB查询检查数组属性中的值是否存在

27 浏览
0 Comments

MongoDB查询检查数组属性中的值是否存在

这个问题已经有答案了:

查找包含特定值的数组的文档

我找不出如何检查mongo文档中一个属性数组中是否有某个值。

例如,我有一些用户集合,和这样一个文档:

{
  'name':'Paul',
  'age':43,
  'friendsIDs': [ ObjectId('qqq...'), ObjectId('www...'), ObjectId('eee...') ],
}

现在假设我想检查,ObjectId(\'qqq ...\')这个ID的用户是否是Paul的朋友。

在几乎所有编程语言中,这都很容易做到,例如在PHP中,它会像这样:

$isFriendOfPaul = in_array( ObjectId('qqq...'), $friendsIds );

但如何在mongo中查询呢?有什么想法吗?

admin 更改状态以发布 2023年5月20日
0
0 Comments

您的查询必须像这样:

db.collection.find({"name": "Paul", "friendsIDs": "qqq"}) 

此查询查找名称为 Paul,且 friendsIDs 等于 qqq 的文档。

0
0 Comments

实际上,它在手册中很明确。

0