Mongodb 我不知道';我不知道如何在Mongo上的同一语句中使用$eq和$regex
我试图使用$eq和$regex在我的mongodb上查找,但我无法让它工作Mongodb 我不知道';我不知道如何在Mongo上的同一语句中使用$eq和$regex,mongodb,Mongodb,我试图使用$eq和$regex在我的mongodb上查找,但我无法让它工作 db.orders.find({“客户代码”:{$eq:“C00001”},{“创建日期”:{$regex:“2019”}) 我的想法是在指定的年份查找一个客户的每个订单。我熟悉sql,但使用nosql。。。如果我使用它,如果我单独使用它,每个语句都会起作用 如果有人能帮我的话。语法错误 db.orders.find( { "customer_cod": { $eq: "C00001" } }, { "cre
db.orders.find({“客户代码”:{$eq:“C00001”},{“创建日期”:{$regex:“2019”})代码>
我的想法是在指定的年份查找一个客户的每个订单。我熟悉sql,但使用nosql。。。如果我使用它,如果我单独使用它,每个语句都会起作用
如果有人能帮我的话。语法错误
db.orders.find(
{ "customer_cod": { $eq: "C00001" } },
{ "creation_date": { $regex: /2019/ } }
)
意味着
如果否,则将日期值正确存储为date
对象,而不是字符串
如果坚持使用字符串值(尽管这是一个糟糕的设计),请尝试以下方法:
db.collection.find({
customer_cod: "C00001",
creation_date: { $regex: /2019/ }
})
注意,{customer\u cod:“c0001”}
相当于{customer\u cod:{$eq:“c0001”}
>db.orders.find({“customer\u cod:{$eq:“c0001”},{“创建日期”:{$regex:/2019/});错误:错误:{“确定”:0,“errmsg”:“不支持的投影选项:创建日期:{$regex:/2019/}”,“代码”:2,“代码名”:“BadValue”}
确定,谢谢,我将切换我的设计。我是nosql db的noob,听建议保存日期/时间值总是很好的,因为字符串对于SQL新手来说也是很常见的。在这里,你几乎每天都要面对它——如果你只存储2位数的年份,情况会更糟。
db.collection.find({
$expr: {
$and: [
{ customer_cod: "C00001" },
{ $eq: [{ "$year": "$creation_date" }, 2019] }
]
}
})
db.collection.find({
customer_cod: "C00001",
creation_date: { $regex: /2019/ }
})