mongoose问题总结(长期更新)

466 阅读1分钟

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"})