2
에서 작동하지 않습니다, 하나의 객체는 다음과 같습니다몽고 쿼리 과수원 데이터베이스 수집을 감안할 때 몽구스
{
"orchardId" : ObjectId("5391c137722b051908000000"),
"trees" : [
{
"name" : "apple",
"fruits" : []
},
{
"name" : "pear",
"fruits" : [
ObjectId("54c54291d93236150f00004e"),
ObjectId("54c542c9d93236150f000062")
]
}
]
}
나는 동적으로 특정 나무에 열매를 추가 할. 난 경우
db.orchards.update(
({"orchardId": ObjectId("5391c137722b051908000000")},
{"trees" : { $elemMatch: {"name":"apple"}}}),
{ $push: { "trees.$.fruits": ObjectId("54c542c9d9000000000") }}
)
그래서, 바로이 몽구스이 있어야한다 :
orchards.update(
({"orchardId": ObjectId.fromString(orchard.id)},
{"trees" : {$elemMatch: {"name": "apple"}}}),
{$push: {"trees.$.fruits": ObjectId("54c542c9d9000000000") }},function(err, data){ ...
을하지만 내가 말하는 오류를 얻을 : 내가 함께 몽고에서이 작업을 수행 할 수 있습니다 알고 [형식 오류 : 수 없다 정의되지 않은 메서드 '경로'호출
$ 연산자를 사용하여 $를 변경하면 mongoose가 위치 연산자 ($
)를 처리 할 수없는 것처럼 보입니다.
어떻게 몽구스로이 작품을 만들 수 있습니까? 코드 샘플에서
감사합니다! 당신은 객체들을 결합 할 수 있습니다, 그리고 그것이 내가 한 것입니다. 따라서 괄호가 맞습니다. 하지만 : 나는 몽구스 3.8.22에서 작동한다는 것을 알았지 만 버전 3.6.15에서는 그렇지 않습니다. –
두 번째 객체 만 평가할 괄호 안에 두 객체를 넣을 때. 적어도 그것은 당신의 코드를 시도했을 때 일어난 일입니다. – JohnnyHK