gpt4 book ai didi

javascript - mongodb - 在运算符中 - 忽略对象键顺序

转载 作者:行者123 更新时间:2023-12-02 13:51:45 25 4
gpt4 key购买 nike

db.mice.find({'strains': {$in : [{mode:'++',name:'Str1'},{mode:'++',name:'Str2'}]}}).count() 
// returns 0
db.mice.find({'strains': {$in : [{name:'Str1',mode:'++'},{name:'Str2',mode:'++'}]}}).count()
// returns 1

如何进行相同的查询但忽略对象内键/值对的顺序?

最佳答案

您可能想要使用 $elemMatch在这种情况下,而不是 $in:

db.mice.find({'strains': {$elemMatch: {mode:'++', name:'Str1'}}}).count()

$in 不起作用的原因是它会将整个值与数组字段的元素进行匹配,因此因为您提供的是一个对象,所以该对象必须完全匹配,包括字段顺序。

但是,$elemMatch 值被解释为查询对象,而不是单个值,因此字段顺序并不重要。

关于javascript - mongodb - 在运算符中 - 忽略对象键顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40982177/

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