Mongodb 인라인 배열 지정 객체 삭제

2229 단어 mongo
공식 설명:
The $pull operator removes all instances of a value from an existing array, as in the following prototype:
db.collection.update( { field: <query> }, { $pull: { field: <query> } } );

그룹의 값이 문자열이나 숫자일 때pull 또는pullAll을 사용하면 편리합니다.field 뒤의 값은 그룹의 값을 직접 따라가면 됩니다.만약 그룹의 값이 대상일 때, 사실은 매우 간단하다.field 다음에 대상의 조건 필드와 값을 따라가면 된다.
e.g.:
db.test.find({"msgid":170}).toArray()
[
	{
		"_id" : ObjectId("52fd7abe5cf0fb00ee4775bf"),
		"msgid" : NumberLong(170),
		"msg" : [
			{
				"comcont" : "heddhefasdfa",
				"comtime" : NumberLong(1392346547)
			},
			{
				"comcont" : "heddhefasdfa",
				"comtime" : NumberLong(1392346667)
			}
		]
	}
]

comtime가 1392346547인 대상을 삭제합니다.
db.test.update({"msgid":170},{"$pull":{"msg":{"comtime":1392346547}}})
db.test.find({"msgid":170}).toArray()
[
	{
		"_id" : ObjectId("52fd7abe5cf0fb00ee4775bf"),
		"msgid" : NumberLong(170),
		"msg" : [
			{
				"comcont" : "heddhefasdfa",
				"comtime" : NumberLong(1392346667)
			}
		]
	}
]

이전에 많은 방법을 시도해 보았지만 모두 틀렸는데, 원래는pull용법으로 쓴 것이 틀렸다.
참조 자료:
http://stackoverflow.com/questions/15641492/mongodb-remove-object-from-array

좋은 웹페이지 즐겨찾기