查找由另一个 ObjectId 引用的嵌套文档
Find nested document referred by another ObjectId
我有四个不同的文档,它们具有相同的 CId,这是另一个 id,表示所有文档都是该 ObjectId 文档的子集。
硕士
{ "_id" : ObjectId("582c5211c8a8e06c0849a238"), "name" : "MyName", "code" : "1234", "__v" : 0 }
子集
{ "_id" : ObjectId("584e72fc28a15d7c1ae0b3de"), "CId" : ObjectId("582c5211c8a8e06c0849a238"), "no_m" : 3, "create_date" : ISODate("2016-12-12T09:50:52.948Z"), "update_date" : ISODate("2016-12-19T14:22:28Z"), "__v" : 0}
{ "_id" : ObjectId("584e72fc28a15d7c1ae0b3df"), "CId" : ObjectId("582c5211c8a8e06c0849a238"), "no_m" : 3, "create_date" : ISODate("2016-12-12T09:50:52.948Z"), "update_date" : ISODate("2016-12-19T14:22:28Z"), "__v" : 0}
{ "_id" : ObjectId("584e72fc28a15d7c1ae0b3dg"), "CId" : ObjectId("582c5211c8a8e06c0849a238"), "no_m" : 3, "create_date" : ISODate("2016-12-12T09:50:52.948Z"), "update_date" : ISODate("2016-12-19T14:22:28Z"), "__v" : 0}
{ "_id" : ObjectId("584e72fc28a15d7c1ae0b3dh"), "CId" : ObjectId("582c5211c8a8e06c0849a238"), "no_m" : 3, "create_date" : ISODate("2016-12-12T09:50:52.948Z"), "update_date" : ISODate("2016-12-19T14:22:28Z"), "__v" : 0}
我想在 Node.js
中找到所有使用 monoose 的文档
我的密码是
var c = 582c5211c8a8e06c0849a238
SubsetSchema.find({'CId' : cid},function(err,Docs){
if (err)
{
console.log(err);
return res.status(400).send({"err":err});
}
});
console.log(Docs);
但它给我错误
如何在 mongoose find() 中包含 ObjectId
with mongodb db.Docs.find({"CId":ObjectId("582c5211c8a8e06c0849a238")}) 正常工作
此处无需强制转换或使用 ObjectId
构造函数,只需将其作为字符串传递即可,但您收到的错误可能是由于某些语法错误,您需要调整代码如下:
var cid = '582c5211c8a8e06c0849a238';
SubsetSchema.find({'CId' : cid},function(err, Docs) {
if (err)
{
console.log(err);
return res.status(400).send({"err":err});
}
console.log(Docs);
});
首先:正确定义变量以匹配它使用c
到cid
的地方。
第二个:通过用 single/double 引号将其作为字符串分配。
第三种:获取定义Docs
的回调函数内部的console.log
语句
我有四个不同的文档,它们具有相同的 CId,这是另一个 id,表示所有文档都是该 ObjectId 文档的子集。
硕士
{ "_id" : ObjectId("582c5211c8a8e06c0849a238"), "name" : "MyName", "code" : "1234", "__v" : 0 }
子集
{ "_id" : ObjectId("584e72fc28a15d7c1ae0b3de"), "CId" : ObjectId("582c5211c8a8e06c0849a238"), "no_m" : 3, "create_date" : ISODate("2016-12-12T09:50:52.948Z"), "update_date" : ISODate("2016-12-19T14:22:28Z"), "__v" : 0}
{ "_id" : ObjectId("584e72fc28a15d7c1ae0b3df"), "CId" : ObjectId("582c5211c8a8e06c0849a238"), "no_m" : 3, "create_date" : ISODate("2016-12-12T09:50:52.948Z"), "update_date" : ISODate("2016-12-19T14:22:28Z"), "__v" : 0}
{ "_id" : ObjectId("584e72fc28a15d7c1ae0b3dg"), "CId" : ObjectId("582c5211c8a8e06c0849a238"), "no_m" : 3, "create_date" : ISODate("2016-12-12T09:50:52.948Z"), "update_date" : ISODate("2016-12-19T14:22:28Z"), "__v" : 0}
{ "_id" : ObjectId("584e72fc28a15d7c1ae0b3dh"), "CId" : ObjectId("582c5211c8a8e06c0849a238"), "no_m" : 3, "create_date" : ISODate("2016-12-12T09:50:52.948Z"), "update_date" : ISODate("2016-12-19T14:22:28Z"), "__v" : 0}
我想在 Node.js
中找到所有使用 monoose 的文档我的密码是
var c = 582c5211c8a8e06c0849a238
SubsetSchema.find({'CId' : cid},function(err,Docs){
if (err)
{
console.log(err);
return res.status(400).send({"err":err});
}
});
console.log(Docs);
但它给我错误
如何在 mongoose find() 中包含 ObjectId
with mongodb db.Docs.find({"CId":ObjectId("582c5211c8a8e06c0849a238")}) 正常工作
此处无需强制转换或使用 ObjectId
构造函数,只需将其作为字符串传递即可,但您收到的错误可能是由于某些语法错误,您需要调整代码如下:
var cid = '582c5211c8a8e06c0849a238';
SubsetSchema.find({'CId' : cid},function(err, Docs) {
if (err)
{
console.log(err);
return res.status(400).send({"err":err});
}
console.log(Docs);
});
首先:正确定义变量以匹配它使用c
到cid
的地方。
第二个:通过用 single/double 引号将其作为字符串分配。
第三种:获取定义Docs
的回调函数内部的console.log
语句