0

私はコレクションを持っています、そして私のコレクションの一部はここにあります、

この最初の配列を呼び出しましょう

$ho = array( 'a' => 
array (
'0' => '508bef9e6803fa6305000000',
'1' => '50901eac6803fafb0d000000',
'2' => '508bf3766803fa810f000000',
'3' => '50a2aeac6803fa150b000000',
'4' => '50a2ae846803fa140b000000',
'5' => '50a2ae616803fab706000000',
'6' => '50a2ae3a6803fab506000000',
'7' => '50a2adfc6803fab306000000',
)),

別のユーザーからの別の埋め込み配列があります。この2番目の配列を呼び出しましょう

'_id' => new MongoId("508bef9e6803fa6305000000"),
'a' => 
array (
'0' => '508bf3766803fa810f000000',
'1' => '50a2ae616803fab706000000',
'2' => '50a2aeac6803fa150b000000',
),

私がやりたいのは、最初の配列から2番目の配列を差し引くことですが、mongodbでやりたいです。

'a' => 
array (
'0' => '508bef9e6803fa6305000000',
'1' => '50901eac6803fafb0d000000',
'4' => '50a2ae846803fa140b000000',
'6' => '50a2ae3a6803fab506000000',
'7' => '50a2adfc6803fab306000000',
),

別のクエリを試しましたが、このような結果を得ることができませんでした。助けてくれてありがとう:)

$lk = $m->kud->user->findOne(
array(
"_id" => new MongoId("508bef9e6803fa6305000000"),'$nin'=>array("a"=>$ho["a"])
), 
array("_id" => 0, "a" => 1)
);
4

1 に答える 1

0

MongoDB は現在、値の一致に基づくプロジェクションをサポートしていません (最終的にはサポートされます)。このような場合、ドキュメント全体を返し、クライアント側で値を引き出す必要があるかもしれません。

于 2012-11-13T21:56:43.897 に答える