1. Cast to ObjectId failed for value XXX at path “_id”?
出现这个问题原因主要是在建表的过程中,定义为ObjectId类型的字段赋值了其他类型的数据,解决赋值问题即可。
2. mongoose多条件查询
一种是多条件“或”的关系,一种是多条件“与”的关系
let req = new RegExp('nick', i)
const result = someModel.find(
{
$or : [ //多条件'或',数组
{nick : 'nick'},
{email : req }//放正则就可以实现模糊查询
],
$and: [// 多条件'与'
{ age: 123 }
]
},
{
password : 0 // 返回结果不包含密码字段
},
{
sort : { _id : -1 },// 按照 _id倒序排列
limit : 100 // 查询100条
}
)
3. 嵌套查询
完全匹配嵌套数据进行查询:
db.getCollection('xxxx').find({ "createdBy": { "kind": "admin", "item": ObjectId("5c9d84c98a007636043f1fe6")}})
部分匹配嵌套数据进行查询:
db.getCollection('trainingEntries').find({"createdBy.kind": "admin"})