最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

Mongodb检查数组的子文档中是否存在字段

IT培训 admin 4浏览 0评论

Mongodb检查数组的子文档中是否存在字段

我正在尝试检查数组的子文档中是否存在字段,如果存在,它将仅在回调中提供那些文档。但是每次我记录回调文档时,它都会为我提供数组中的所有值,而不是基于查询的值。

I am following this tutorial唯一的区别是我使用的是findOne函数而不是find函数,但是它仍然带给我所有值。我尝试使用查找,它做同样的事情。

我也使用与上面的链接中的示例相同的收集样式。

示例在上图中,您可以在上图中看到我的文档带有uid字段和contacts数组。我想做的是首先根据输入的uid选择一个文档。然后,在选择该文档之后,我想显示contacts数组中存在[[contacts.uid字段的值。因此,从上图可以看出,只有要显示的值为contacts [0]contacts [3],因为contacts 1没有uid字段。

Contact.contactModel.findOne({$and: [ {uid: self.uid}, {contacts: { $elemMatch: { uid: { $exists: true, $ne: undefined, } } }} ]} 回答如下:在上面提到的教程中,它们将2个参数传递给方法,一个参数用于过滤器,一个参数用于投影,但是您刚刚传递了一个,这就是区别。您可以将查询更改为:

Contact.contactModel.findOne( {uid: self.uid}, {contacts: { $elemMatch: { uid: { $exists: true, $ne: undefined, } } }} )

Mongodb检查数组的子文档中是否存在字段

我正在尝试检查数组的子文档中是否存在字段,如果存在,它将仅在回调中提供那些文档。但是每次我记录回调文档时,它都会为我提供数组中的所有值,而不是基于查询的值。

I am following this tutorial唯一的区别是我使用的是findOne函数而不是find函数,但是它仍然带给我所有值。我尝试使用查找,它做同样的事情。

我也使用与上面的链接中的示例相同的收集样式。

示例在上图中,您可以在上图中看到我的文档带有uid字段和contacts数组。我想做的是首先根据输入的uid选择一个文档。然后,在选择该文档之后,我想显示contacts数组中存在[[contacts.uid字段的值。因此,从上图可以看出,只有要显示的值为contacts [0]contacts [3],因为contacts 1没有uid字段。

Contact.contactModel.findOne({$and: [ {uid: self.uid}, {contacts: { $elemMatch: { uid: { $exists: true, $ne: undefined, } } }} ]} 回答如下:在上面提到的教程中,它们将2个参数传递给方法,一个参数用于过滤器,一个参数用于投影,但是您刚刚传递了一个,这就是区别。您可以将查询更改为:

Contact.contactModel.findOne( {uid: self.uid}, {contacts: { $elemMatch: { uid: { $exists: true, $ne: undefined, } } }} )

发布评论

评论列表 (0)

  1. 暂无评论