簡體   English   中英

Pymongo,查詢列表字段,和/或

[英]Pymongo, query on list field, and/or

我有一個包含一些文檔的集合,例如:

{
    _id: 5,
    vals: [100, 1100, 1500]
},
{
    _id: 10,
    vals: [1100, 1700]
}

如何查詢在vals字段中具有以下內容的文檔:

  • 1100
  • 1700 或 100
  • 100 和 1100

我可以使用一些理解魔法,例如:

g = lambda codes: (
    d for d in collection.find() if any(code in d["vals"] for code in codes)
)
g([100, 1700]).next()

或者,對於 AND:

g = lambda codes: (
    d for d in collection.find() if all(code in d["vals"] for code in codes)
)
g([100, 1100]).next()

這似乎有點笨拙,但如果有一些可以通過驅動程序完成的查找魔法。

yourmongocoll.find({"vals":1100})
yourmongocoll.find({"$or":[ {"vals":1700}, {"vals":100}]})
yourmongocoll.find({"$and":[ {"vals":100}, {"vals":1100}]})

我建議閱讀Mongodb 高級查詢

你還會發現$in ...有用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM