我有一个json对象,它有一个数组属性'partners',如下所示:
{
"_id" : ObjectId("578667b1bb14ca1c2773adaa"),
"customer" : null,
"created" : ISODate("2016-07-13T16:09:21.015+0000"),
"description" : "",
"subject" : "case 2",
"__v" : NumberInt(5),
"partners" : [
ObjectId("57857d93038aacd81ef3ad55"),
ObjectId("57857d93038aacd81ef3ad56")
]
}
我想使用以下代码检查伙伴数组中是否已存在元素:
_.includes(case_.partners, partner._id)
就是这样你知道我正在使用lodash,但由于某种原因不能正常工作,我不知道为什么,谁知道这里有什么问题?
答案 0 :(得分:0)
我理解的是,您提供的partners
示例是一个javascript对象,您应该尝试在Json中使用原始类型值。
您可以通过以下方式将ObjectId
转换为String
:
ObjectId("578667b1bb14ca1c2773adaa") + '';
或
ObjectId("578667b1bb14ca1c2773adaa").toHexString();
Json对象应该是这样的:
{
"_id" : "578667b1bb14ca1c2773adaa",
"customer" : null,
"created" : "2016-07-13T16:09:21.015+0000",
"description" : "",
"subject" : "case 2",
"__v" : 5,
"partners" : [
"57857d93038aacd81ef3ad55",
"57857d93038aacd81ef3ad56"
]}
所以解决方案是,将Javascript对象转换为Json对象,然后比较它们。