MongoDB查询以检索数组中包含特定元素的所有行

我对使用MongoDb并不陌生,并且陷入了此查询中, 我想检索所有具有较小尺寸的行

{
  "_id":ObjectId("562e7c594c12942f08fe4192"),"sizes":["small","medium","large"]
},{
  "_id":ObjectId("562e7c594c22942f08fe4193"),"sizes":["small"]
},{
  "_id":ObjectId("562e7c594c12942f08fe4199"),"sizes":["medium",

我希望所有较小的行都可用,即

{
  "_id":ObjectId("562e7c594c12942f08fe4192"),
sadsasafsa 回答:MongoDB查询以检索数组中包含特定元素的所有行

我不知道您已经尝试了哪些命令,但是,也许可以尝试使用以下命令:

myCursor = db.inventory.find( { 'sizes': "small" } )

由于这只会显示前20个文档,因此可以放置一个循环:

while (myCursor.hasNext()) {
    print(tojson(myCursor.next()));
}

ref:https://docs.mongodb.com/guides/server/read_queries/

,

您需要使用$elemMatch

xxx.find(
   { sizes: { $elemMatch: { $eq:"small" } } }
)

https://docs.mongodb.com/manual/reference/operator/query/elemMatch/

,

尝试这个

db.sales.aggregate([
 {
    $project: {
         items: {
            $filter: {
                input: "$items",as: "item",cond: { $gte: [ "$$item.sizes",small] }
            }
          }
      }
   }
}
])

db.users.find({sizes': "small"});
本文链接:https://www.f2er.com/3007403.html

大家都在问