gpt4 book ai didi

mongodb $elemMatch

转载 作者:可可西里 更新时间:2023-11-01 10:34:58 27 4
gpt4 key购买 nike

根据 mongodb 文档,$elemMatch 的语法是,

t.find( { x : { $elemMatch : { a : 1, b : { $gt : 1 } } } } )

我试过了,效果很好。上面的意思是,它可以查找数组x中是否存在对象{a:1, b:'more than 1'}。

我有一个要求,我需要弄清楚数组中的所有对象是否都存在于数据库中。

例如,假设我有一个数组,

a=[{a:1, b:2},{a:3, b:4}, {a:5, b:6}]

我需要查明 x 是否包含所有这些。

t.find( { x : { $elemMatch : { a : {$all:[1]}, b : {$all:[2]} } } } ) 它找出所有包含 {a: 1, b:2}

但如果我尝试,t.find( { x : { $elemMatch : { a : {$all:[1,3]}, b : {$all:[2,4]} } } } ),它失败了。我知道这是不正确的。有什么办法可以做到这一点?理想情况下,应该是,

t.find( { x : { $elemMatch : {$all:[ {a:1, b:2}, {a:3, b:4}] } } )

我试过了,不行

最佳答案

t.find({$and:[{a:{$elemMatch:{a:1, b:2}}}, {a:{$elemMatch:{a:3, b:4}}}, {a:{$elemMatch:{a:5, b:6}}}]})

虽然这不是一个特别高性能的选项。

关于mongodb $elemMatch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9207335/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com