在数组猫鼬中查找数组中的元素
find element in array within array mongoose
我有这个数据:
[
{
contacts: [ [Object] ],
_id: 614a1301a926d73628d791fe,
username: 'erick',
socketId: 'OB8uqmHnsGPKC3gcAAAB'
},
{
contacts: [
contacts: [ [Object] ],
_id: 614a1301a926d73628d791fe,
username: 'erick',
socketId: 'OB8uqmHnsGPKC3gcAAAB'
],
_id: 614a1306a926d73628d79204,
username: 'tachancka',
socketId: 'cN333_zn8r48K_0tAAAB'
}
]
我需要在 'tachancka' 个联系人中找到 'erick' 的用户名。
我已经尝试了几种方法来做到这一点,但 none 对我有用,返回 null。
例如:
User.findOne({contacts: {$elemMatch:{'username': 'erick'}}})
或者:
User.findOne({'contacts.username': 'erick'})
请参考此处示例:https://mongoplayground.net/p/Np_MdrubPgT
你可以使用
db.User.find({
username: "tachancka",
"contacts.username": "erick"
})
当你有对象数组时,如果你想匹配对象中的所有字段,那么我们使用 $elemMatch,在你的情况下,我觉得用户名不是联系人数组的一部分,因此你不会使用 $elemMatch
我有这个数据:
[
{
contacts: [ [Object] ],
_id: 614a1301a926d73628d791fe,
username: 'erick',
socketId: 'OB8uqmHnsGPKC3gcAAAB'
},
{
contacts: [
contacts: [ [Object] ],
_id: 614a1301a926d73628d791fe,
username: 'erick',
socketId: 'OB8uqmHnsGPKC3gcAAAB'
],
_id: 614a1306a926d73628d79204,
username: 'tachancka',
socketId: 'cN333_zn8r48K_0tAAAB'
}
]
我需要在 'tachancka' 个联系人中找到 'erick' 的用户名。 我已经尝试了几种方法来做到这一点,但 none 对我有用,返回 null。
例如:
User.findOne({contacts: {$elemMatch:{'username': 'erick'}}})
或者:
User.findOne({'contacts.username': 'erick'})
请参考此处示例:https://mongoplayground.net/p/Np_MdrubPgT
你可以使用
db.User.find({
username: "tachancka",
"contacts.username": "erick"
})
当你有对象数组时,如果你想匹配对象中的所有字段,那么我们使用 $elemMatch,在你的情况下,我觉得用户名不是联系人数组的一部分,因此你不会使用 $elemMatch