我想从MongoDB集合中检索所有文档,其中export PSYCOPG2_POSTGRESQL_URI="postgresql://user:password@/databasename?host=/cloudsql/project-name:region:database-instance-name"
./cloud_sql_proxy -instances=project-name:region:database-instance-name=tcp:5432
#somewhat later:
python myserver.py
字段是数字或字符串,由所有数字(1、2、19或“ 4”,“ 19”, ...)
我查询:
users
...,并显示错误“未知运算符$ or”。
这有效:
db.getCollection('collection').find(
{
users: { $or : [ { $type: [1, 16, 18, 19] },
{ $regex: /^[0-9]+$/ } ]
}
}
)
为什么第一个变体不起作用?
答案 0 :(得分:1)
$ or本身必须包含要查询的字段。您的第二个查询包含该字段。
$or :[{field_name:Match_expression},{field_name:Match_expression}...{field_name:Match_expression}]
答案 1 :(得分:0)
db.getCollection('collection').find( {
$and : [
{ $or : [ { $type: [1, 16, 18, 19] } ] },
{ $or : [ {users: { $regex: /^[0-9]+$/ } ] }
]
} )
这应该有效
编辑